从列表元素中提取元素

时间:2018-10-24 19:53:20

标签: r

我有以下列表:

df1 <- data.frame(A=1:10, B=2:11, C=3:12)
df2 <- data.frame(A=10:19, B=9:18, C=8:17)
df3 <- data.frame(A=100:109, B=80:89, C=20:29)
my_list <- list(df1, df2, df3)

是否可以提取所有A列并将其放入新的数据框中?我希望得到的结果数据帧是:

df4 <- data.frame (df1=1:10, df2=10:19, df3=100:109)

谢谢!

1 个答案:

答案 0 :(得分:2)

可以,列名称除外。如果列表命名为

my_list <- list(df1 = df1, df2 = df2, df3 = df3)

然后确实

data.frame(lapply(my_list, `[[`, "A"))
#    df1 df2 df3
# 1    1  10 100
# 2    2  11 101
# 3    3  12 102
# 4    4  13 103
# 5    5  14 104
# 6    6  15 105
# 7    7  16 106
# 8    8  17 107
# 9    9  18 108
# 10  10  19 109

否则,

my_list <- list(df1, df2, df3)
head(data.frame(lapply(my_list, `[[`, "A")), 2)
#   X1.10 X10.19 X100.109     
# 1     1     10      100
# 2     2     11      101
head(data.frame(lapply(my_list, `[`, "A")), 2)
#   A A.1 A.2
# 1 1  10 100
# 2 2  11 101

,以便您可能要手动分配列名。