r语言 - 如何合并两个列名混乱的数据帧



我有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")

我们可以使用自动查找匹配列名的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))

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

rbind(df1, df2[names(df1)])
#  a b c
#1 1 3 6
#2 1 5 6

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

最新更新