我有4个数据框,所有数据都具有相同的列数和相同的列名
列的顺序不同。
我想将所有4个数据框组合在一起,并将它们与列名匹配。
答案 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个数据框名为df1
,df2
,df3
和df4
,因为列数和列名相同,那么为什么不这样做:
cl <- sort(colnames(df1))
mrg <- rbind(df1[,cl], df2[,cl], df3[,cl], df4[,cl])
如果您希望按照特定的列顺序(例如df2
中的列顺序),则可以执行此操作:
mrg <- mrg[,colnames(df2)]