On Thu, 29 Nov 2001, Michaell Taylor wrote:
>
> Now I want the "vote?" variables in a dataframe. I can grep them
by
> > grep("vote",ls(),value=T)
> [1] "vote1" "vote10" "vote2"
"vote3" "vote4" "vote5" "vote6"
"vote7"
> [9] "vote8" "vote9"
>
> seems like some sort of:
> mydata _ data.frame(as.list(grep("vote",ls(),value=T)))
>
> should work, but doesn't. The the list isn't being fed into the
data.frame
> function properly, but I can't figure out how it needs to be feed.
>
There are two problems here.
The first is that you want the list of 10 names to be 10 arguments to
data.frame, not one argument as you have here. The second problem is that
you need to convert them from strings to variable names.
If nm<-grep("vote",ls(),value=T)
then the second problem is fixed by using as.name() on the string to turn
them into names
lapply(nm,as.name)
The first problem is fixed with the do.call() function, which takes a
single list and turns its elements into arguments for a function
do.call("data.frame", lapply(nm, as.name))
So for example
R> b<-1:10
R> c<-1:10
R> d<-1:10
R>
do.call("data.frame",lapply(c("b","c","d"),as.name))
b c d
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
6 6 6 6
7 7 7 7
8 8 8 8
9 9 9 9
10 10 10 10
-thomas
Thomas Lumley Asst. Professor, Biostatistics
tlumley at u.washington.edu University of Washington, Seattle
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._