I have a data file, 'precip_projected.csv,' that starts like this: name,easting,northing,elev,sampdate,prcp Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-01,0.59 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-02,0.08 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-03,0.1 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-04,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-05,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-06,0.02 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-07,0.05 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-08,0.1 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-09,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-10,0.02 There are a bunch of NAs in the data file. The command to read it produces an error: rainfall <- read.csv('../data/precipitation/precip_projected.csv', header = T, sep = ',', as.is = T) Error in `$<-.data.frame`(`*tmp*`, date, value = numeric(0)) : replacement has 0 rows, data has 113569 Is the error generated by finding a date that looks like the number zero or by a prcp value of zero? BTW, I get the same error if I specify stringsAsFactors = F. TIA, Rich
Hi Rich, It's not obvious what would be causing that error from read.csv. But here's what I would probably try: Add quote='"" to your arguments. The default is to use surround text strings with double quotes, but your file doesn't. Copy the first few rows into another file and try it. If it succeeds, that would suggest something later on in the file is causing the problem. The argument sep=',' is redundant for read.csv. In other words, it sets sep for you. I'd try switching to the more general read.table. Are the NAs in the file indicated by NA between a pair of commas? Or do you have successive commas with nothing between them for NA? Not sure what difference it will make, but it might affect what args you pass to read.table. Are you absolutely sure there are never any commas in the name? -Don -- Don MacQueen Lawrence Livermore National Laboratory 7000 East Ave., L-627 Livermore, CA 94550 925-423-1062 Lab cell 925-724-7509 ?On 8/17/18, 3:08 PM, "R-help on behalf of Rich Shepard" <r-help-bounces at r-project.org on behalf of rshepard at appl-ecosys.com> wrote: I have a data file, 'precip_projected.csv,' that starts like this: name,easting,northing,elev,sampdate,prcp Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-01,0.59 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-02,0.08 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-03,0.1 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-04,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-05,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-06,0.02 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-07,0.05 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-08,0.1 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-09,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-10,0.02 There are a bunch of NAs in the data file. The command to read it produces an error: rainfall <- read.csv('../data/precipitation/precip_projected.csv', header = T, sep = ',', as.is = T) Error in `$<-.data.frame`(`*tmp*`, date, value = numeric(0)) : replacement has 0 rows, data has 113569 Is the error generated by finding a date that looks like the number zero or by a prcp value of zero? BTW, I get the same error if I specify stringsAsFactors = F. TIA, Rich ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
small typo in previous: should be quote="" (I left behind a single quote by mistake) -- Don MacQueen Lawrence Livermore National Laboratory 7000 East Ave., L-627 Livermore, CA 94550 925-423-1062 Lab cell 925-724-7509 ?On 8/17/18, 5:03 PM, "R-help on behalf of MacQueen, Don via R-help" <r-help-bounces at r-project.org on behalf of r-help at r-project.org> wrote: Hi Rich, It's not obvious what would be causing that error from read.csv. But here's what I would probably try: Add quote='"" to your arguments. The default is to use surround text strings with double quotes, but your file doesn't. Copy the first few rows into another file and try it. If it succeeds, that would suggest something later on in the file is causing the problem. The argument sep=',' is redundant for read.csv. In other words, it sets sep for you. I'd try switching to the more general read.table. Are the NAs in the file indicated by NA between a pair of commas? Or do you have successive commas with nothing between them for NA? Not sure what difference it will make, but it might affect what args you pass to read.table. Are you absolutely sure there are never any commas in the name? -Don -- Don MacQueen Lawrence Livermore National Laboratory 7000 East Ave., L-627 Livermore, CA 94550 925-423-1062 Lab cell 925-724-7509 On 8/17/18, 3:08 PM, "R-help on behalf of Rich Shepard" <r-help-bounces at r-project.org on behalf of rshepard at appl-ecosys.com> wrote: I have a data file, 'precip_projected.csv,' that starts like this: name,easting,northing,elev,sampdate,prcp Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-01,0.59 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-02,0.08 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-03,0.1 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-04,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-05,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-06,0.02 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-07,0.05 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-08,0.1 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-09,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-10,0.02 There are a bunch of NAs in the data file. The command to read it produces an error: rainfall <- read.csv('../data/precipitation/precip_projected.csv', header = T, sep = ',', as.is = T) Error in `$<-.data.frame`(`*tmp*`, date, value = numeric(0)) : replacement has 0 rows, data has 113569 Is the error generated by finding a date that looks like the number zero or by a prcp value of zero? BTW, I get the same error if I specify stringsAsFactors = F. TIA, Rich ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
What Don said, and also notice that the error is not about anything having value 0, it is about replacing something with something of _length_ 0. It is not obvious where that happens, sometimes a traceback() can give a clue, but probably Don is right that the issue is that there is something not quite CSV in the file. One further idea is to read using colClasses="character" and see if that actually gives you 6 columns and then afterwards try and convert each column to the appropriate type. -pd> On 18 Aug 2018, at 00:08 , Rich Shepard <rshepard at appl-ecosys.com> wrote: > > I have a data file, 'precip_projected.csv,' that starts like this: > > name,easting,northing,elev,sampdate,prcp > Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-01,0.59 > Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-02,0.08 > Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-03,0.1 > Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-04,0 > Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-05,0 > Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-06,0.02 > Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-07,0.05 > Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-08,0.1 > Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-09,0 > Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-10,0.02 > > There are a bunch of NAs in the data file. > > The command to read it produces an error: > > rainfall <- read.csv('../data/precipitation/precip_projected.csv', header = T, sep = ',', as.is = T) > > Error in `$<-.data.frame`(`*tmp*`, date, value = numeric(0)) : > replacement has 0 rows, data has 113569 > > Is the error generated by finding a date that looks like the number zero > or by a prcp value of zero? > > BTW, I get the same error if I specify stringsAsFactors = F. > > TIA, > > Rich > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
Hi, I would be tempted, as a start, to read the entire file in as rows of text, split each line by the expected delimiter, and then count the number of elements each split line yields. Once you know each row splits into the expected number of txt <- "name,easting,northing,elev,sampdate,prcp Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-01,0.59 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-02,0.08 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-03,0.1 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-04,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-05,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-06,0.02 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-07,0.05 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-08,0.1 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-09,0 Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-10,0.02" txtCon <- textConnection(txt) x <- readLines(txtCon) close(txtCon) n <- sapply(strsplit(x, ",", fixed = TRUE), length) table(n) If any have a different length then investigate that/those line(s). If they all have the same length then it likely isn't about the delimiter. Cheers, Ben> On Aug 18, 2018, at 5:05 AM, peter dalgaard <pdalgd at gmail.com> wrote: > > What Don said, and also notice that the error is not about anything having value 0, it is about replacing something with something of _length_ 0. It is not obvious where that happens, sometimes a traceback() can give a clue, but probably Don is right that the issue is that there is something not quite CSV in the file. > > One further idea is to read using colClasses="character" and see if that actually gives you 6 columns and then afterwards try and convert each column to the appropriate type. > > -pd > >> On 18 Aug 2018, at 00:08 , Rich Shepard <rshepard at appl-ecosys.com> wrote: >> >> I have a data file, 'precip_projected.csv,' that starts like this: >> >> name,easting,northing,elev,sampdate,prcp >> Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-01,0.59 >> Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-02,0.08 >> Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-03,0.1 >> Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-04,0 >> Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-05,0 >> Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-06,0.02 >> Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-07,0.05 >> Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-08,0.1 >> Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-09,0 >> Headworks Portland Water,2370575.38427211,199337.634652112,228,2005-01-10,0.02 >> >> There are a bunch of NAs in the data file. >> >> The command to read it produces an error: >> >> rainfall <- read.csv('../data/precipitation/precip_projected.csv', header = T, sep = ',', as.is = T) >> >> Error in `$<-.data.frame`(`*tmp*`, date, value = numeric(0)) : >> replacement has 0 rows, data has 113569 >> >> Is the error generated by finding a date that looks like the number zero >> or by a prcp value of zero? >> >> BTW, I get the same error if I specify stringsAsFactors = F. >> >> TIA, >> >> Rich >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > -- > Peter Dalgaard, Professor, > Center for Statistics, Copenhagen Business School > Solbjerg Plads 3, 2000 Frederiksberg, Denmark > Phone: (+45)38153501 > Office: A 4.23 > Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >Ben Tupper Bigelow Laboratory for Ocean Sciences 60 Bigelow Drive, P.O. Box 380 East Boothbay, Maine 04544 http://www.bigelow.org Ecological Forecasting: https://eco.bigelow.org/ [[alternative HTML version deleted]]
On Sat, 18 Aug 2018, MacQueen, Don wrote:> It's not obvious what would be causing that error from read.csv. But > here's what I would probably try:> I'd try switching to the more general read.table.Don/Peter, I found the problem: it was in the following line in the script which referenced 'date' rather than 'sampdate'. Single or double quotes make no difference within the script. I have a vague recollection from long ago that read.table() is a better choice than read.csv(). I don't recall the details why, but I did change the function to read.table(), fixed the column name, and have only the labeling of the xyploy() left to fix. Thanks very much, both of you, Rich