如果我们有100个对象的列表:
List
[[1]]
x y z
379.0 0.6 1.0
369.0 0.3 2.0
[[2]]
x y z
359.0 6.2 4.0
379.0 4.6 1.0
[[3]]
x y z
379.0 6.0 1.0
379.0 0.5 1.0
.
.
[[100]]
我如何使用" y"获得矩阵?每个对象的列表列的值(它们都具有相同的长度),获得类似的东西:
X:
y1 y2 y3 ... y100
0.6 6.2 6.0
0.3 4.6 0.5
答案 0 :(得分:4)
尝试以下:
# example list
l <- list(cars[1:3, ], cars[4:6, ])
l
# [[1]]
# speed dist
# 1 4 2
# 2 4 10
# 3 7 4
#
# [[2]]
# speed dist
# 4 7 22
# 5 8 16
# 6 9 10
子集第二列使用&#34; [&#34; 函数,然后绑定列:
do.call(cbind, lapply(l, "[", 2))
# dist dist
# 1 2 22
# 2 10 16
# 3 4 10
或者是另一种类似的方法,我们转换为 data.frame ,而不是绑定列:
as.data.frame(lapply(l, "[", 2))
# dist dist.1
# 1 2 22
# 2 10 16
# 3 4 10
注意:我们也可以使用列名进行子集化。在我的示例数据中,第二列名称为&#34; dist&#34; ,因此请使用&#34; dist&#34; 替换上面的数字 2 em>它应该也一样。