Skip to content

Perform operations on dataframes called with paste in loops

4 messages · separent, David Winsemius, Uwe Ligges +1 more

#
In a loop, I compose the name of a csv file using paste, then read it (e.g.,
dataset1.csv, dataset2.csv, etc). The name of the dataframe assigned to the
imported csv is also composed with paste (e.g., dataset1, dataset2, etc.).
Now I want to perform operations on the dataframes dataset1, dataset2, etc.
However, the paste function only renders a string on which I can not, for
example, do operations like
plot(paste("dataset",i,"[,1]",sep=""),paste("dataset",i,"[,2]",sep="")). How
could I call the dataframe instead of the string representing its name?
#
On Nov 17, 2009, at 6:14 PM, separent wrote:

            
?get

(It's also in the FAQ.)
#
separent wrote:
1. consider to read the csv files into a *list* of dataframes and loop 
over that list.
2. if you do not want to follow 1., see ?get

Uwe Ligges
#
There are a few options:

You can read the help page for the function that you used to assign names to the data frames when you read them in (the 'see also' section is there for a reason).

You can read the FAQ (7.21 to be specific, but the others could save you re-asking FAQs in the future)

You can take a better approach by reading all your data sets into a list (use lapply on the vector of names), then use lapply on the list of datasets and avoid all the future headache/heartache that will come from the approach you are trying.