我有以下列表:
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)
谢谢!
答案 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
,以便您可能要手动分配列名。