52

这可能是一个非常简单的问题。我有一个数据框列表(df1,df2 .... dfn),即列表的每个元素都是一个数据框。所以基本上,列表是这样创建的:

mylist = list(df1, df2,...., dfn)

但是我该如何做相反的事情,即未列出以便 df1、df2 等单独驻留在工作区中?

4

2 回答 2

87

使用list2env它是专门为此设计的:

从命名列表 x,创建一个包含所有列表组件作为对象的环境,或从 x“多重分配”到预先存在的环境中。

所以在这里 :

list2env(mylist ,.GlobalEnv)
于 2013-07-17T10:30:57.770 回答
19

您可以简单地使用 for 循环和这样的assign函数:

# Sample data
df.list <- list(data.frame(x = 1:3, y = c(10, 20, 30)), 
                data.frame(x = 4:6, y = c(40, 50, 60)), 
                data.frame(x = 7:9, y = c(70, 80, 90)))

# Write out single data frames
for (i in seq(df.list))
  assign(paste0("df", i), df.list[[i]])
于 2013-07-17T10:28:26.460 回答