根据r中的列名合并数据框

时间:2016-10-14 14:18:03

标签: r

我有4个数据框,所有数据都具有相同的列数和相同的列名 列的顺序不同。
我想将所有4个数据框组合在一起,并将它们与列名匹配。

2 个答案:

答案 0 :(得分:0)

使用Azure ML - 这是我发现自动执行此合并的最佳选择。

df <- maml.mapInputPort(1)
df2 <- maml.mapInputPort(2) 

if (length(df2.toAdd <- setdiff (names(df), names(df2))))
df2[, c(df2.toAdd) := NA]

if (length(df.toAdd <- setdiff (names(df2), names(df))))
df[, c(df.toAdd) := NA]

df3 <- rbind(df, df2, use.names=TRUE)


maml.mapOutputPort("df3");

答案 1 :(得分:0)

假设您的4个数据框名为df1df2df3df4,因为列数和列名相同,那么为什么不这样做:

cl <- sort(colnames(df1))
mrg <- rbind(df1[,cl], df2[,cl], df3[,cl], df4[,cl])

如果您希望按照特定的列顺序(例如df2中的列顺序),则可以执行此操作:

mrg <- mrg[,colnames(df2)]