索引列表列表

时间:2015-05-12 16:16:05

标签: r list

假设我有一个名为lst

的列表列表
x<-as.list(runif(10, 1, 10))
y<-as.list(runif(10, 11, 20))
z<-as.list(runif(10, 20, 30))

lst<-list(x,y,z)

如果我想要每个子列表的第一个条目,我可以

lapply(lst, "[[", 1)

但是,假设我想要每个子列表的第一个和第二个条目。尝试执行以下操作会给我一个错误:

lapply(lst, "[[", 1:2)

Error in FUN(X[[1L]], ...) : subscript out of bounds

如何在一次通话中抓取每个子列表的第一个和第二个条目?

2 个答案:

答案 0 :(得分:2)

您可能需要

 lapply(lst, "[", 1:2)

或者

 do.call(c,lapply(lst, "[", 1:2))

根据?&#34; [[&#34;

  

'[','[['和'$')之间最重要的区别是        '['可以选择多个元素,而另外两个元素        选择一个元素。

答案 1 :(得分:1)

还取决于您想要结果的顺序。 @akrun从每个列表中为您提供 第1,第2,第1,第2,第1,第2 这是给你的不同方式 1日,1日,1日,2日,2日,2日

lapply(1:2, function(x) lapply(lst, "[[", x))