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

R 从数据帧列表中提取特定信息,r,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

我面临以下挑战:

我在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)

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

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

除了上面显示的
*apply
方法外,您还可以以矢量化的方式执行此操作。由于列表中的所有数据帧都具有相同的列名,并且您需要第一列中的第一个元素,即“A1”,因此您可以简单地
取消列表
(这将创建命名向量)并获取名称为
A1
的值

v1 <- unlist(L)
v1[names(v1) == 'A1']
#A1 A1 A1 
# 1  7  0 
v1
lappy(L,函数(x)x[1,1])
?或者使用
sapply
sapply(L,函数(x)x[1,1])
。另一种方式:
sapply(L,
[
,1,1)
。或者在一行中(创建数据帧之后):
res
unlist(lapply(…
=
sapply