【问题标题】:How to rbind two dataframes in R when one has more columns than the other [duplicate]当一个数据帧的列比另一个数据帧多时,如何在R中绑定两个数据帧[重复]
【发布时间】:2021-04-28 03:14:06
【问题描述】:

我想将三个数据框合并在一起,将它们作为行附加到前一个的底部,但我希望它们的列匹配。每个数据框都有不同数量的列,但它们共享列名。例如:

Dataframe A                  Dataframe B                     Dataframe C
A B Y Z                      A B C X Y Z                     A B C D W X Y Z
# # # #                      # # # # # #                     # # # # # # # # 

最后,我希望它们看起来像:

Dataframe_Final
A B C D W X Y Z
# #         # #
# # #     # # #
# # # # # # # #

如何以这种方式将这些数据框合并在一起?同样,数据帧中唯一的行(升序等)没有 ID。 谢谢!

【问题讨论】:

标签: r dataframe merge rbind


【解决方案1】:

基本 R 选项可能是 Reduce + merge

out <- Reduce(function(x,y) merge(x,y,all = TRUE),list(dfA,dfB,dfC))
out <- out[order(names(out))]

给了

  A B  C  D  W  X Y Z
1 1 2 NA NA NA NA 3 4
2 1 2  3 NA NA  4 5 6
3 1 2  3  4  5  6 7 8

虚拟数据

dfA <- data.frame(A = 1, B = 2, Y = 3, Z = 4)
dfB <- data.frame(A = 1, B = 2, C = 3, X = 4, Y = 5, Z = 6)
dfC <- data.frame(A = 1, B = 2, C = 3, D = 4, W = 5, X = 6, Y = 7, Z = 8)

【讨论】:

    猜你喜欢
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    相关资源
    最近更新 更多