In some cases, merge() has a problem in R-2.0.0 alpha (2004-09-14): x <- structure(c("a", "b", "2", "0.2-26", "O", "O"), .Dim = c(2, 3), .Dimnames = list(c("1", "2"), c("P", "V", "2"))) y <- structure(c("a", "b", "2", "0.2-25", "O", "O"), .Dim = c(2, 3), .Dimnames = list(c("1", "2"), c("P", "V", "1"))) merge(x, y, all.y=TRUE) Error in "[<-"(`*tmp*`, ri, value = NULL) : incompatible types Looks like the NA handling has changed anywhere. Uwe Ligges
Uwe Ligges <ligges@statistik.uni-dortmund.de> writes:> In some cases, merge() has a problem in R-2.0.0 alpha (2004-09-14): > > x <- structure(c("a", "b", "2", "0.2-26", "O", "O"), .Dim = c(2, 3), > .Dimnames = list(c("1", "2"), c("P", "V", "2"))) > > y <- structure(c("a", "b", "2", "0.2-25", "O", "O"), .Dim = c(2, 3), > .Dimnames = list(c("1", "2"), c("P", "V", "1"))) > > merge(x, y, all.y=TRUE) > > Error in "[<-"(`*tmp*`, ri, value = NULL) : > incompatible types > > > Looks like the NA handling has changed anywhere.Names handling, more likely:> v <- structure(list("2" = NA), .Names = "2", class = "data.frame", row.names = "2") > u <- structure(list("2" = structure(1, .Names = "1", .Label = "O", class = "factor")), .Names = "2", class = "data.frame", row.names = "1") > uu <- structure(list("2" = structure(1, .Label = "O", class = "factor")), .Names = "2", class = "data.frame", row.names = "1") > rbind(v,u)2 2 <NA> 1 O> rbind(v,uu)2 2 <NA> 1 O> rbind(u,v)Error during wrapup: incompatible types> rbind(uu,v)2 1 O 2 <NA> (Notice that the only difference between u and uu is the .Names bit) -- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk) FAX: (+45) 35327907
On Wed, 15 Sep 2004, Uwe Ligges wrote:> In some cases, merge() has a problem in R-2.0.0 alpha (2004-09-14): > > x <- structure(c("a", "b", "2", "0.2-26", "O", "O"), .Dim = c(2, 3), > .Dimnames = list(c("1", "2"), c("P", "V", "2"))) > > y <- structure(c("a", "b", "2", "0.2-25", "O", "O"), .Dim = c(2, 3), > .Dimnames = list(c("1", "2"), c("P", "V", "1"))) > > merge(x, y, all.y=TRUE) > > Error in "[<-"(`*tmp*`, ri, value = NULL) : > incompatible types > > > Looks like the NA handling has changed anywhere.Peter was right. rbind.data.frame had ## copy names if any names(value[[jj]])[ri] <- names(xj) but did not test if there were any. It would probably be a good idea if that did work but for now I have added a test. -- Brian D. Ripley, ripley@stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595