ripley@stats.ox.ac.uk
1999-Nov-10 10:41 UTC
data.frame, cbind is inconsistent with S on logicals (PR#316)
R 0.65.1 (and R-devel 09/11/99)> z <- data.frame(a=1:3) > b <- rep(NA, 3) > mode(b)[1] "logical" # how many of you expected that? I had forgotten!> zz <- cbind(z, b) > zza b 1 1 NA 2 2 NA 3 3 NA> class(zz$b)[1] "factor" whereas in S it is NULL and zz$b is of mode "numeric". The same thing happens with data.frame zz <- data.frame(a, b) gives zz$b as a factor in R and numeric in S. I don't think this is a desirable difference, at least with all NAs! -- 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 272860 (secr) Oxford OX1 3TG, UK Fax: +44 1865 272595 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Peter Dalgaard BSA
1999-Nov-10 11:14 UTC
data.frame, cbind is inconsistent with S on logicals (PR#316)
ripley@stats.ox.ac.uk writes:> R 0.65.1 (and R-devel 09/11/99) > > > z <- data.frame(a=1:3) > > b <- rep(NA, 3) > > mode(b) > [1] "logical" > # how many of you expected that? I had forgotten! > > zz <- cbind(z, b) > > zz > a b > 1 1 NA > 2 2 NA > 3 3 NA > > class(zz$b) > [1] "factor" > > whereas in S it is NULL and zz$b is of mode "numeric". > > The same thing happens with data.frame > > zz <- data.frame(a, b) > > gives zz$b as a factor in R and numeric in S. > > I don't think this is a desirable difference, at least with all NAs!Hmmm. Notice that in *both* R and S3,> class(data.frame(x=TRUE)$x)[1] "factor" And in both dialects, NA is a logical constant. So S3 is doing a special exception for all-NA logical vectors. Of course, we could just clone that... -- 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 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
ripley@stats.ox.ac.uk
1999-Nov-10 11:59 UTC
data.frame, cbind is inconsistent with S on logicals (PR#316)
> From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk> > Date: 10 Nov 1999 12:14:33 +0100 > > ripley@stats.ox.ac.uk writes: > > > R 0.65.1 (and R-devel 09/11/99) > > > > > z <- data.frame(a=1:3) > > > b <- rep(NA, 3) > > > mode(b) > > [1] "logical" > > # how many of you expected that? I had forgotten! > > > zz <- cbind(z, b) > > > zz > > a b > > 1 1 NA > > 2 2 NA > > 3 3 NA > > > class(zz$b) > > [1] "factor" > > > > whereas in S it is NULL and zz$b is of mode "numeric". > > > > The same thing happens with data.frame > > > > zz <- data.frame(a, b) > > > > gives zz$b as a factor in R and numeric in S. > > > > I don't think this is a desirable difference, at least with all NAs! > > Hmmm. Notice that in *both* R and S3, > > > class(data.frame(x=TRUE)$x) > [1] "factor" > > And in both dialects, NA is a logical constant. So S3 is doing a > special exception for all-NA logical vectors. Of course, we could just > clone that...It isn't: I was using the S4-style data frame code in my copy of S-PLUS 3.4 (it is needed for some recent extensions) and had not noticed. And S4 keeps these logical, which seems much more desirable to me. In both R and S it is a quirk that z$b <- b and z <- cbind(z, b) are different, but not in S4 nor in S3+library(df) I withdraw this. -- 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 272860 (secr) Oxford OX1 3TG, UK Fax: +44 1865 272595 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._