Timothy W. Hilton
2010-Nov-24 18:33 UTC
[R] rbind error (maybe a problem with chron package?)
Hello, I have a list of data frames that I would like to combine to a single data frame. I typically do this with: do.call(rbind, list.of.dataframes) This time, I get Error in class(x) <- cl : cannot set class to "array" unless the dimension attribute has length > 0 I'm not sure what's happening. Each data frame has a column of chron objects and a column of float values. Minimal example of the data frames and the error below. If I start with a fresh R session, it works, until I load the chron package. I'd appreciate any suggestions! Thanks, Tim -- Timothy W. Hilton PhD Candidate, Department of Meteorology The Pennsylvania State University 503 Walker Building, University Park, PA 16802 hilton at meteo.psu.edu -------------------------------------------------- foo <- structure(list(date = structure(c(12052.75, 12052.875, 12053, 12053.125, 12053.25, 12053.375), .Dim = 6L, format structure(c("m/d/y", "h:m:s"), .Names = c("dates", "times")), origin = structure(c(1, 1, 1970), .Names = c("month", "day", "year")), class = c("chron", "dates", "times")), val = structure(c(NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), .Dim = 6L)), .Names = c("date", "val"), row.names = c(NA, 6L), class = "data.frame") -------------------------------------------------- and an example of the error: --------------------------------------------------> foofoo date val 1 (12/31/02 18:00:00) NA 2 (12/31/02 21:00:00) NA 3 (01/01/03 00:00:00) NA 4 (01/01/03 03:00:00) NA 5 (01/01/03 06:00:00) NA 6 (01/01/03 09:00:00) NA> rbind(foo, foo)rbind(foo, foo) Error in class(x) <- cl : cannot set class to "array" unless the dimension attribute has length > 0 -------------------------------------------------- If I start with a fresh R session, it works, until I load the chron package: -------------------------------------------------- $ R --vanilla R version 2.12.0 (2010-10-15) Copyright (C) 2010 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-unknown-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R.> foo <- structure(list(date = structure(c(12052.75, 12052.875, 12053,+ 12053.125, 12053.25, 12053.375), .Dim = 6L, format structure(c("m/d/y", + "h:m:s"), .Names = c("dates", "times")), origin = structure(c(1, + 1, 1970), .Names = c("month", "day", "year")), class = c("chron", + "dates", "times")), val = structure(c(NA_real_, NA_real_, NA_real_, + NA_real_, NA_real_, NA_real_), .Dim = 6L)), .Names = c("date", + "val"), row.names = c(NA, 6L), class = "data.frame")> foodate val 1 12052.75 NA 2 12052.88 NA 3 12053.00 NA 4 12053.12 NA 5 12053.25 NA 6 12053.38 NA> rbind(foo, foo)date val 1 12052.75 NA 2 12052.88 NA 3 12053.00 NA 4 12053.12 NA 5 12053.25 NA 6 12053.38 NA 7 12052.75 NA 8 12052.88 NA 9 12053.00 NA 10 12053.12 NA 11 12053.25 NA 12 12053.38 NA> library(chron) > rbind(foo, foo)Error in class(x) <- cl : cannot set class to "array" unless the dimension attribute has length > 0