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

时间:2014-06-12 22:52:15

标签: 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)

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

list(df.abc.1$a, df.abc.2$a)

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

我希望能做到这样的事情,

list(c(df.abc.1, df.abc.2)$a)

但是,它返回一个df.abc.1 $ a

的列表

也许有可能在多个data.frames中使用grep函数? 也许一个循环可以完成这个任务?

1 个答案:

答案 0 :(得分:3)

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

lapply(list(df.abc.1, df.abc.2), function(x) x$a)

对于多列

lapply(list(df.abc.1, df.abc.2), function(x) x[, c("a","b")])