tags:

views:

80

answers:

1

So let's say I have a directory with a bunch of .rdata files

file_names=as.list(dir(pattern="stock_*"))

[[1]]
[1] "stock_1.rdata"

[[2]]
[1] "stock_2.rdata"

Now, how do I load these files with a single call?

I can always do:

for(i in 1:length(file_names)) load(file_names[[i]]) 

but why can't I do something like do.call(load, file_names)? I suppose none of the apply functions would work because most of them would return lists but nothing should be returned, just that these files need to be loaded. I cannot get the get function to work in this context either. Ideas?

+9  A: 

lapply works, but you have to specify that you want the objects loaded to the .GlobalEnv otherwise they're loaded into the temporary evaluation environment created (and destroyed) by lapply.

lapply(file_names,load,.GlobalEnv)
Joshua Ulrich