在R中将两个数据框做成相同的形式 数据

问题描述

我有一个数据框为:

DF1

ID   Name  Fruit      Berry  Price
01   Jim   Apple      No     .69
02   Rick  BlueBerry  Yes    1.50

一个

DF2

Name    ID   Price   Berry   Fruit  
Hannah  03   1.20    No      Apple  
Allie   04   .40             Canteloupe 

所以目标很简单,我只想将它们捆绑在一起。但是列不对齐。真实的数据帧有30个变量,所以我怎么将它们放在一起并相应地对变量重新排序。

最终df目标:

ID   Name   Fruit      Berry  Price
01   Jim    Apple      No     .69
02   Rick   BlueBerry  Yes    1.50
03   Hannah Apple      No     1.20       
04   Allie  Canteloupe        .40

解决方法

我们可以使用bind_rows来根据第一个数据集自动重新排列第二个列

library(dplyr)
bind_rows(DF1,DF2)

-输出

#  ID   Name      Fruit Berry Price
#1  1    Jim      Apple    No  0.69
#2  2   Rick  Blueberry   Yes  1.50
#3  3 Hannah      Apple    No  1.20
#4  4  Allie Canteloupe  <NA>  0.40

数据

DF1 <- structure(list(ID = 1:2,Name = c("Jim","Rick"),Fruit = c("Apple","Blueberry"),Berry = c("No","Yes"),Price = c(0.69,1.5)),class = "data.frame",row.names = c(NA,-2L))


DF2 <- structure(list(Name = c("Hannah","Allie"),ID = 3:4,Price = c(1.2,0.4),NA),"Canteloupe")),-2L))