[Rd] possible BUG with as.data.frame() and/or [.data.frame
Peter Dalgaard BSA
p.dalgaard@biostat.ku.dk
08 Mar 2000 11:14:17 +0100
"Jens Oehlschlägel-Akiyoshi" <jens.oehlschlaegel-akiyoshi@mdfactory.de> writes:
> Here is a possible BUG with as.data.frame() and/or [.data.frame which broke
> Michael Lapsleys RODBC-Code.
> Can anyone confirm it is a bug or a 'feature' of the prototype?
>
>
> tablename <- "abc"
> a <- as.data.frame(cbind("abc", 1:3))
> b <- as.data.frame(cbind(tablename, 1:3))
>
> # ok
> > a
> V1 V2
> 1 abc 1
> 2 abc 2
> 3 abc 3
>
> # missing column name
> > b
> tablename
> 1 abc 1
> 2 abc 2
> 3 abc 3
>
> # subsetting ok
> > b[1,1]
> [1] abc
> Levels: abc
>
> # subsetting fails
> > b[1,2]
> Error in [.data.frame(b, 1, 2) : undefined columns selected
>
>
> ##by contrast
> > data.frame(cbind(tablename, 1:3))
> tablename Var.2
> 1 abc 1
> 2 abc 2
> 3 abc 3
It's a prototype "feature"...
...
Version 3.4 Release 1 for Sun SPARC, SunOS 5.3 : 1996
...
> tablename <- "abc"
> b <- as.data.frame(cbind(tablename, 1:3))
> b
tablename
1 abc 1
2 abc 2
3 abc 3
> b[,2]
Error in "[.data.frame"(b, , 2): undefined columns selected
Dumped
This is a conspiracy of three things:
1) The deparse.level feature of cbind (which is unsettable, but the
internals still behave as if deparse.level=1) which causes a
deparsing of simple arguments (i.e. symbols) into colnames, leaving
others blank.
2) as.data.frame.matrix expects that if colnames are present, they can
just be copied to the names() of the result
3) "[.data.frame" explicitly checks whether a column name is blank
after subsetting, and protests if it is.
--
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._