从多个数据框中提取具有相同名称的列 [R]

Mad*_*Lee 4 r

我正在处理大约 10 个具有相同列名但行数不同的数据框。我想创建一个包含所有同名列的列表。

所以,假设我有 2 个同名的数据框。

a<-seq(0,20,1)
b<-seq(20,40,1)
c<-seq(10,30,1)

df.abc.1<-data.frame(a,b,c)

a<-seq(20,50,1)
b<-seq(10,40,1)
c<-seq(30,60,1)

df.abc.2<-data.frame(a,b,c)
Run Code Online (Sandbox Code Playgroud)

我知道我可以根据这些数据创建一个列表,例如,

list(df.abc.1$a, df.abc.2$a)
Run Code Online (Sandbox Code Playgroud)

但我不想输入长数据框名称和列名称。

我本来希望做这样的事情

list(c(df.abc.1, df.abc.2)$a)
Run Code Online (Sandbox Code Playgroud)

但是,它返回 df.abc.1$a 的列表

也许有一种方法可以跨多个 data.frames 使用 grep 函数?也许循环可以完成这个任务?

Dav*_*urg 5

不确定是否会更好,但也许

lapply(list(df.abc.1, df.abc.2), function(x) x$a)
Run Code Online (Sandbox Code Playgroud)

对于多于一列

lapply(list(df.abc.1, df.abc.2), function(x) x[, c("a","b")])
Run Code Online (Sandbox Code Playgroud)