首页 > 解决方案 > R - 有没有办法根据另一个具有不同列的数据框设置数据框列顺序

问题描述

我想根据 df1 列顺序设置 df2 列顺序。我们应该注意: * df1 中不存在的 df2 中的新列:应将这些列放置为最后一列。* df1 中不存在于 df2 中的列:应创建并填充 NA 或空列。

可重现的例子:

df1 <- data.frame(x1=1:4, x2=c('a','b', NA, 'd'),x4=4:7, stringsAsFactors=FALSE)
df1[,(ncol(df1)+1):5] <- NA
df1 <- cbind(df1, x3=c(0,0,2,2))
df2 <- data.frame(x3=6:7, x2=c("zz", "qq"),x1=2:3, x66 = 66:67, x77 = 77:78, stringsAsFactors=FALSE)

预期的列顺序:“x1”“x2”“x4”“V4”“V5”“x3”“x66”“x77”

标签: rdataframe

解决方案


这是一种使用简单的方法dplyr::bind_rows-

bind_rows(df1[NULL, ], df2)

  x1 x2 x4 V4 V5 x3 x66 x77
1  2 zz NA NA NA  6  66  77
2  3 qq NA NA NA  7  67  78

推荐阅读