Rbind:将源名称添加为新组合数据集中的列和/或变量

时间:2018-08-30 20:12:31

标签: r plyr rbind

我正在使用Rbind将多个数据集合并为一个大数据框。

供将来参考,我希望能够看到行来自哪个数据集。

是否有不使用ID或其他“黑客”的简便方法?

源文件示例:

Sales_East <- (read.csv('salesEast.csv')
Sales_West<- (read.csv('salesWest.csv')
Dataset <- rbind.fill(Sales_East,Sales_West)

结果数据集:

ID Order Amount 
1  2     10
2  1     5
A  4     20
B  2     10

但是我正在寻找更像这样的东西:

ID Order Amount Source 
1  2     10     East
2  1     5      East
A  4     20     West
B  2     10     West

1 个答案:

答案 0 :(得分:2)

如果您只想对两个数据框进行行绑定,则只需自己添加源即可:

Sales_East <- read.csv('salesEast.csv')
Sales_East$Source <- "East"

Sales_West <- read.csv('salesWest.csv')
Sales_West$Source <- "West"

Dataset <- rbind.fill(Sales_East, Sales_West)

如果有一堆数据帧,则需要通过自己编写或使用ls()在字符向量中获取它们的名称。但是一旦有了它,就可以做到:

dfnames <- c("Sales_East", "Sales_West")
do.call(rbind, lapply(dfnames, function(x) cbind(get(x), Source=x)))