我在列表中创建了一些列表,并希望能够将每个子列表元素作为顶级的单个元素。
例如,创建一些虚拟数据:
pp <- lapply(10:15,function(y){
lapply(10:20,function(z){
as.data.frame(matrix(rnorm(z*y),nrow=z,ncol=y))
})
})
这将创建以下输出
> summary(pp)
Length Class Mode
[1,] 11 -none- list
[2,] 11 -none- list
[3,] 11 -none- list
[4,] 11 -none- list
[5,] 11 -none- list
[6,] 11 -none- list
你也可以做的地方
> summary(pp[[1]])
Length Class Mode
[1,] 10 data.frame list
[2,] 10 data.frame list
[3,] 10 data.frame list
[4,] 10 data.frame list
[5,] 10 data.frame list
[6,] 10 data.frame list
[7,] 10 data.frame list
[8,] 10 data.frame list
[9,] 10 data.frame list
[10,] 10 data.frame list
[11,] 10 data.frame list
结果输出只会创建一个新的列表,如下所示:
new.pp[[1]] <- pp[[1]][[1]]
new.pp[[2]] <- pp[[1]][[2]]
但是想知道当你在列表中有列表时,是否有一种智能或更有效的方法来删除一个级别的列表....
理想情况下,我正在寻找的是某种功能,它为我提供了这一点,所以,如果我有多个级别的列表彼此嵌套而不是只有两个,我可以在每个级别重新咒骂地使用该函数最终将每个元素带到列表的顶部......
我认为这样做了
new.pp <- unlist(pp,recursive=FALSE)