我正在处理大约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函数? 也许一个循环可以完成这个任务?
答案 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")])