我想从列表中提取所有项目并给它们起新颖的名字。有没有简单的方法可以做到这一点?我想要的结果可以通过以下繁琐的手动方式实现:
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')的对象。”
答案 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)