R从多个列表中的每个数据帧中提取值

时间:2016-12-29 09:35:41

标签: r

我在R工作并遇到以下情况: 每20个数据帧的10个列表。数据帧都具有相同的行数和列数。

现在我想从每个列表中的每个数据帧中提取一个值。这是来自列'B'等于3的行的列名'A'的值。因此,使用下面的示例(表示一个数据帧),我需要提取值8

A    B    C
0    1    0
1    2    0
8    3    0

我想将列表中所有数据帧的值存储在向量中。

我在此论坛的另一个问题中找到了以下代码

List <- list(c(1:3,4:5), c(4:6), c(7:9))
lapply(List, '[[', 3)  # This retuns a list with only the third element
unlist(lapply(List, '[[', 3)) # This retuns a vector with the third elements

所以我希望这可以使用包含数据帧的列表,而不仅仅是值。

1 个答案:

答案 0 :(得分:1)

我们遍历list data.frame并提取与'B'值对应的'A'列值

lapply(lst, function(x) x$A[x$B==3])