R-alpha: ?bug in [.data.frame
Thomas Lumley <thomas@biostat.washington.edu> writes:
If you subscript a data frame using the names of the columns and there is
more than one column with the same name only the first one is found.
eg
mm<-data.frame(1:10,log(1:10))
names(mm)<-c("(offset)","(offset)")
mm[,"(offset)"] # only returns first column
mm[,"(offset)"]<-rep(1,10) # only sets first column
This *is* compatible with S, but I still think it's the wrong thing to do.
This is a generic list thing. Nothing keeps you from having several elements with the same name, you just get certain problems accessing them.
l<-list(1,2,3)
names(l)<-c("a","b","b")
l
$a [1] 1 $b [1] 2 $b [1] 3
l$b
[1] 2 I rather strongly suspect that coding for the possibility, that in a list of vectors l$b could mean another list, would be a real pain. I.e. you deserve what you get... If you must have identically named columns, try something along the lines of
l[names(l)=="b"]
$b [1] 2 $b [1] 3
l[names(l)=="b"]<-4 l
$a [1] 1 $b [1] 4 $b [1] 4
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 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-