[R] Variable variables using R ... e.g., looping over data frames with a numeric separator

Tony Plate taplate at gmail.com
Tue May 18 16:24:48 CEST 2010


On 05/17/2010 03:51 PM, Monte Shaffer wrote:
> for(i in 1:L-1)
> {
> dataStr = gsub(' ','',paste("fData.",i));
> dataVar = eval(dataStr);
>   ## GOAL is to grab data frame  'fData.1' and do stuff with it, then in next
> loop grab data frame 'fData.2' and do stuff with it
>
>
> }
>    
As Dan Davison said, the more standard R way would be to put all your 
data frames in a list, then iterate over the list.

However, if do want to have your data frames in separate variables, and 
then get each data frame in a loop similar to the code fragment above, 
try something like this:

for (i in 1:(L-1)) {
     dataName <- paste("fData.", i, sep="")
     df <- get(dataName)
     ... do something with data frame df ...
}

You can also give additional arguments to get() to tell it where to look 
(pos=,envir=), and whether to look in parent environments 
(inherits=TRUE/FALSE).

-- Tony Plate



More information about the R-help mailing list