从数据框列表中提取特定信息

时间:2018-02-19 08:57:40

标签: r

我正面临以下挑战:

我在R中有一个数据框列表,我想从中提取一些特定信息。这是一个例子:

df_1 <- data.frame(A = c(1,2), B = c(3,4), D = c(5,6))
df_2 <- data.frame(A = c(7,8), B = c(9,10), D = c(11,12))
df_3 <- data.frame(A = c(0,1), B = c(2,3), D = c(4,5))

L <- list(df_1, df_2, df_3)

我想要提取的是每个数据帧中位置(1,1)的值。在上面的例子中,这将是:1,7,7。

有没有办法轻松提取这些信息,可能需要一行代码?

2 个答案:

答案 0 :(得分:1)

正如Ronak建议的那样,你可以使用像lapply这样的函数并用unlist包装它以获得所需的输出。

 unlist(lapply(L,function(x) x[1,1]))

答案 1 :(得分:1)

除了上面显示的*apply方法之外,您还可以采用矢量化方式执行此操作。由于列表中的所有数据框都具有相同的列名,并且您想要第一列中的第一个元素,即&#39; A1&#39;,那么您只需unlist(这将创建一个命名的矢量)并使用名称A1获取值。

v1 <- unlist(L)
v1[names(v1) == 'A1']
#A1 A1 A1 
# 1  7  0