我正面临以下挑战:
我在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。
有没有办法轻松提取这些信息,可能需要一行代码?
答案 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