以向量化方式从列表中提取项目?

时间:2018-11-26 10:55:07

标签: r list

我想从列表中提取所有项目并给它们起新颖的名字。有没有简单的方法可以做到这一点?我想要的结果可以通过以下繁琐的手动方式实现:

mylist = list(data.frame(seq(1,10,1)), data.frame(seq(40,50,1)), data.frame(seq(70,80,1)))

apples = mylist[[1]]
pears = mylist[[2]]
oranges = mylist[[3]]

但是,对于更大的列表或更多的列表,这变得更加乏味。我想问R,

“请解压缩我列表中的所有项目,以分离名为c('apples','pears','oranges')的对象。”

2 个答案:

答案 0 :(得分:1)

尝试使用assign中的base函数。它通过给出一个字符串(变量名)及其内容来工作。您可以将其循环,例如:

names # vector containing variables names
sapply(1:length(names),function(x){ assign(names[x],mylist[[x]]}

答案 1 :(得分:1)

您只需提供列表名称,然后使用list2env将每个元素存储在全局环境中。

list2env(x = setNames(mylist, c('apples','pears','oranges')), envir = .GlobalEnv)