将列表的特定部分转换为数据帧

时间:2016-04-05 12:01:37

标签: r

我有一个包含2个元素列表的大型列表,其中包含25个向量的列表,类似于这样的集合:

l1 <- list(time=runif(100), space=runif(100))
l2 <- list(time=runif(100), space=runif(100))

list1 <- list(test1=list(species1=l1, species2=l2),test2=list(species1=l1, species2=l2))

我认为,它本质上是一个lists.of向量列表的列表。

我想从所有物种的所有空间矢量中创建一个data.frame&#39;只有两个子列表中的一个:

final <- as.data.frame(cbind(unlist(list1[[2]]$species1$space), unlist(list1[[2]]$species2$space)))
names(final) <- names(list1[[2]])

基本上,我需要一个循环/应用命令来导航我list1[[2]]$species并选择所有称为空格的向量。

非常感谢!

1 个答案:

答案 0 :(得分:1)

我们可以使用嵌套循环来提取'space'元素

data.frame(lapply(list1, function(x) 
          sapply(x, "[", 'space')))