R中的“循环”和子集化列表元素

时间:2016-10-11 20:13:43

标签: r lapply sapply

我在R列表中有一个向量列表,这样列表的每个位置都包含3列,例如:

d[[1]]
   lon lat pr
1 -70  10  0
2 -70   9  0
3 -70   8  0
4 -70   7  0
5 -70   6  0
6 -70   5  0

d[[2]]
   lon lat   pr
1 -70  10 0.48
2 -70   9 0.00
3 -70   8 0.00
4 -70   7 0.00
5 -70   6 0.00
6 -70   5 0.16

依旧......

我希望所有人都说出列表中所有向量的第1,第3和第6个位置,并将其存储在另一个列表或数据框中,例如

list[[1]]
   lon lat pr
1 -70  10  0
3 -70   8  0
6 -70   5  0

list[[2]]
   lon lat pr
1 -70  10 0.48
3 -70   8 0.00
6 -70   5 0.16

等...

我尝试了一些lapply和衍生物但没有成功。除了循环遍历所有索引值之外,还有更简单的方法吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用lapply

> lapply(mylist, function(x) x[c(1,3,6),])
[[1]]
  lon lat pr
1 -70  10  0
3 -70   8  0
6 -70   5  0

[[2]]
  lon lat   pr
1 -70  10 0.48
3 -70   8 0.00
6 -70   5 0.16