将数据框加载到列表中

Load data frames into list

我正在尝试将一堆 *.Rdata 加载到列表中。

files <- paste0("name", 1:10, ".Rdata")
data <- lapply(files, load)

这将创建一个列表,其中每个元素都有数据框的名称,但没有其他内容。

如果我重新定义文件使其只包含第一个文件,然后调用:

load(files)

然后是"works",但是'files'里的文件是分配给全局环境的,这不是我想要的。

我想以一个列表结尾,其中每个元素都包含数据框。这样当我进行数据处理时,我可以 lapply 遍历列表。

现已测试,确实有效!

e1 = new.env()
invisible(lapply(files, load, envir = e1))
my_list = as.list(e1)

你可以试试

lapply(files, function(x) mget(load(x)))

mget 将 return 列表中对象的值。在您的 .Rdata 文件中,每个文件只有一个 'data.frame' 对象。所以,即使 get 也应该有效。

在您的代码中,

load(files[1]) 

对象将在全局环境中找到。假设,对象是 'd1',通过在控制台输入 'd1',你可以得到对象的值。同理

lapply(files, load, .GlobalEnv)

加载全局环境中的对象,可以通过键入访问。我猜你的问题是获取列表中的值,这可以用 getmget 来完成。