【问题标题】:How to merge two data frame which has jumbled column names如何合并两个列名混乱的数据框
【发布时间】:2021-08-27 03:43:48
【问题描述】:

我有 2 个数据框 df1 和 df2,它们的列名相同,但列号不同。如何在不创建额外列/行的情况下合并为 df3。

df1

a  b  c
1  3  6

df2

b  c  a
5  6  1

expected df3

a  b  c
1  3  6
1  5  6

尝试了下面的代码,但没有成功

df3=merge(df1, df2, by = "col.names")

【问题讨论】:

标签: r dataframe merge


【解决方案1】:

我们可以使用bind_rows,它会自动查找匹配的列名,如果不存在,它会为没有匹配的列添加NA。列的顺序将基于 `bind_rows 中的第一个数据集输入的顺序,即 df1

library(dplyr)
bind_rows(df1, df2)

-输出

  a b c
1 1 3 6
2 1 5 6

数据

df1 <- structure(list(a = 1L, b = 3L, c = 6L), class = "data.frame", row.names = c(NA, 
-1L))

df2 <- structure(list(b = 5L, c = 6L, a = 1L), class = "data.frame", row.names = c(NA, 
-1L))

【讨论】:

  • 我无法绑定它们。得到错误。 """""" 错误:无法组合`.."""""""
  • @Meenu 你在两个数据集中都有不同类型的列吗?
【解决方案2】:

根据另一个数据框重新排列任何一个数据框的列,使两列具有相同的列名顺序,然后使用rbind

rbind(df1, df2[names(df1)])

#  a b c
#1 1 3 6
#2 1 5 6

在这种情况下,使用rbind(df1, df2) 也应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    相关资源
    最近更新 更多