RE: [R] how to use do.call(rbind, get(list(mlist)))

2005-01-21 Thread Liaw, Andy
Here's one way (should work for data frames, too):

 mlist - paste(m, 1:5, sep=)
 for (i in 1:5) assign(mlist[i], matrix(runif(4), 2, 2))
 do.call(rbind, mget(mlist, .GlobalEnv))
[,1]   [,2]
 [1,] 0.33846095 0.09494054
 [2,] 0.65229451 0.26009002
 [3,] 0.53969914 0.66481544
 [4,] 0.59316498 0.36125843
 [5,] 0.24005411 0.01010594
 [6,] 0.06878842 0.93929806
 [7,] 0.02618064 0.06243190
 [8,] 0.08144251 0.04331587
 [9,] 0.95216684 0.61066435
[10,] 0.03712678 0.95809995

get() takes a character vector as the first argument, and you passed it a
list with one component (a character vector).  Even if you pass mlist to
get(), it will only get the first one.

Andy


 From: roger bos
 
 I have around 200 data frames I want to rbind in a vectorized way. 
 The object names are:
 
 m302
 m303
 ...
 m500
 
 So I tried:
 
 mlist - paste(m,302:500,sep=)
 dat - do.call(rbind, get(list(mlist)))
 
 and I get Error in get(x, envir, mode, inherits) : invalid 
 first argument
 
 I know rbind is valid because 
 
 dat - rbind(m302, m303, m304, m305)
 
 works, I am just too lazy to type it out to m500.
 
 I also tried it without the get() portion, but then dat ends up being
 a column with just the names of the objects, not the objects
 themselves.
 
 Thanks in advance for showing me the errors in my attempts.
 
 Roger
 
 __
 R-help@stat.math.ethz.ch mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide! 
 http://www.R-project.org/posting-guide.html
 


__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


RE: [R] how to use do.call(rbind, get(list(mlist)))

2005-01-21 Thread Berton Gunter
Roger:

Please re-read ?get, where it says that the x argument must be a single
character string name, not a list.You must first create the list using get
and then call do.call on that list:

do.call(rbind,lapply(mlist,get))

-- Bert Gunter
Genentech Non-Clinical Statistics
South San Francisco, CA
 
The business of the statistician is to catalyze the scientific learning
process.  - George E. P. Box
 
 

 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of roger bos
 Sent: Friday, January 21, 2005 9:07 AM
 To: r-help@stat.math.ethz.ch
 Subject: [R] how to use do.call(rbind, get(list(mlist)))
 
 I have around 200 data frames I want to rbind in a vectorized way. 
 The object names are:
 
 m302
 m303
 ...
 m500
 
 So I tried:
 
 mlist - paste(m,302:500,sep=)
 dat - do.call(rbind, get(list(mlist)))
 
 and I get Error in get(x, envir, mode, inherits) : invalid 
 first argument
 
 I know rbind is valid because 
 
 dat - rbind(m302, m303, m304, m305)
 
 works, I am just too lazy to type it out to m500.
 
 I also tried it without the get() portion, but then dat ends up being
 a column with just the names of the objects, not the objects
 themselves.
 
 Thanks in advance for showing me the errors in my attempts.
 
 Roger
 
 __
 R-help@stat.math.ethz.ch mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide! 
 http://www.R-project.org/posting-guide.html


__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


Re: [R] how to use do.call(rbind, get(list(mlist)))

2005-01-21 Thread Uwe Ligges
roger bos wrote:
I have around 200 data frames I want to rbind in a vectorized way. 
The object names are:

m302
m303
...
m500
So I tried:
mlist - paste(m,302:500,sep=)
dat - do.call(rbind, get(list(mlist)))

  do.call(rbind, lapply(mlist, get))
Uwe Ligges

and I get Error in get(x, envir, mode, inherits) : invalid first argument
I know rbind is valid because 

dat - rbind(m302, m303, m304, m305)
works, I am just too lazy to type it out to m500.
I also tried it without the get() portion, but then dat ends up being
a column with just the names of the objects, not the objects
themselves.
Thanks in advance for showing me the errors in my attempts.
Roger
__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


RE: [R] how to use do.call(rbind, get(list(mlist)))

2005-01-21 Thread McGehee, Robert
get() doesn't take a list. You need to wrap it in an lapply so that it
grabs the dataframes individually and then wraps it into a list for
do.call().

The easy way, however, that doesn't involve do.call or get is to simply
construct the proper text rbind query and then run it with eval.

eval(parse(text = paste(rbind(, paste(m, 302:500, sep = , collapse
= , ), 

To use the do.call() / get() construct, I think this is what you were
thinking of:

mlist - paste(m,302:500,sep=)
do.call(rbind, lapply(mlist, get))

Best,
Robert

-Original Message-
From: roger bos [mailto:[EMAIL PROTECTED] 
Sent: Friday, January 21, 2005 12:07 PM
To: r-help@stat.math.ethz.ch
Subject: [R] how to use do.call(rbind, get(list(mlist)))


I have around 200 data frames I want to rbind in a vectorized way. 
The object names are:

m302
m303
...
m500

So I tried:

mlist - paste(m,302:500,sep=)
dat - do.call(rbind, get(list(mlist)))

and I get Error in get(x, envir, mode, inherits) : invalid first
argument

I know rbind is valid because 

dat - rbind(m302, m303, m304, m305)

works, I am just too lazy to type it out to m500.

I also tried it without the get() portion, but then dat ends up being
a column with just the names of the objects, not the objects
themselves.

Thanks in advance for showing me the errors in my attempts.

Roger

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


RE: [R] how to use do.call(rbind, get(list(mlist)))

2005-01-21 Thread Wiener, Matthew
Roger --

First, if you have the data frames in a list already, you can just use
those; no need to bother with the names.  If the data frames are all
separate, but you have the names, you can first create a list of the data
frames themselves:

do.call(rbind, lapply(mlist, get))  # assumes they're in the workspace

An example:
 temp1 - matrix(runif(10), 5, 2)
 temp2 - matrix(-runif(10), 5, 2)   (for easy identifiability)
 temp3 - do.call(rbind, lapply(c(temp1, temp2), get))
 temp3 - do.call(rbind, list(temp1, temp2)) (same as above)

Hope this helps,

Matt Wiener

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of roger bos
Sent: Friday, January 21, 2005 12:07 PM
To: r-help@stat.math.ethz.ch
Subject: [R] how to use do.call(rbind, get(list(mlist)))


I have around 200 data frames I want to rbind in a vectorized way. 
The object names are:

m302
m303
...
m500

So I tried:

mlist - paste(m,302:500,sep=)
dat - do.call(rbind, get(list(mlist)))

and I get Error in get(x, envir, mode, inherits) : invalid first argument

I know rbind is valid because 

dat - rbind(m302, m303, m304, m305)

works, I am just too lazy to type it out to m500.

I also tried it without the get() portion, but then dat ends up being
a column with just the names of the objects, not the objects
themselves.

Thanks in advance for showing me the errors in my attempts.

Roger

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


Re: [R] how to use do.call(rbind, get(list(mlist)))

2005-01-21 Thread Thomas Lumley
On Fri, 21 Jan 2005, roger bos wrote:
I have around 200 data frames I want to rbind in a vectorized way.
The object names are:
m302
m303
...
m500
So I tried:
mlist - paste(m,302:500,sep=)
dat - do.call(rbind, get(list(mlist)))
and I get Error in get(x, envir, mode, inherits) : invalid first argument
Yep. get() takes a single variable name as its argument.
If you tried   get(list(m302,m303)) you would get the same error.
I know rbind is valid because
dat - rbind(m302, m303, m304, m305)
works, I am just too lazy to type it out to m500.
I also tried it without the get() portion, but then dat ends up being
a column with just the names of the objects, not the objects
themselves.
Indeed.  This translates to rbind(m302,m303
You could use mget() instead of get().
-thomas
__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html