[R] assign to data.frame
pols1oh at bestweb.net
Thu Jun 13 21:49:45 CEST 2002
I have two large data.frames which I would like to combine. Merge works, but
is slow and a "merge" is not really required. Rather a rbind will do the
trick. However, there are a number of variables which need to be created in
each data.frame to make the columns of the two data.frames similar.
d1 <- data.frame(ind1=1:10,ind2=letters[1:10],c_rnorm(10))
d2 <- data.frame(ind1=21:30,ind2=letters[11:20],e_rnorm(10))
thus, d1 contains 'c' and d2 contains 'e' - with no overlap in ind1 and ind2.
If I :
d1$e <- rep(NA,10)
d2$c <- rep(NA,10)
d <- rbind(d1,d2) # which is where I want to go.
However, there are actually a number of such variables to be created. Sooo, I
add.to.d2 <- names(d1)[!is.element(names(d1),names(d2)]
for (V in add.to.d2)
(ditto for the other data.frame)
which gives me a d2$c in the global space, but not in the d2 dataframe. I see
options for environment specification in assign, but can't seem to manage to
specify a dataframe as the environ. Also tried: assign(as.name(paste('d2$',V,
sep='')),rep(NA,10)) -- which wouldn't seem needed, and indeed, not.
gotta be something I am missing and I am sure it is in the help files
somewhere, but .... any hints?
Michaell Taylor, PhD
r-help 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-help-request at stat.math.ethz.ch
More information about the R-help