如何合并两个长度不同的数据框,它们所有列的值都相同,但位置不同?
要合并两个长度不同的数据框,它们所有列的值都相同,但位置不同,我们可以按照以下步骤操作:
- 首先,创建两个数据框。
- 然后,使用merge函数合并它们,并将所有参数设置为FALSE。
创建数据框
让我们创建一个如下所示的数据框:
> x<-sample(1:5,20,replace=TRUE) > y<-sample(1:5,20,replace=TRUE) > z<-sample(1:5,20,replace=TRUE) > df1<-data.frame(x,y,z) > df1
执行上述脚本后,将生成以下输出(由于随机化,此输出将在您的系统上有所不同):
输出
x y z 1 2 3 5 2 3 3 2 3 5 3 1 4 1 2 3 5 1 3 2 6 2 5 4 7 5 5 3 8 1 1 1 9 2 1 2 10 3 4 1 11 2 4 1 12 3 5 1 13 4 3 1 14 3 1 3 15 4 5 2 16 1 3 3 17 4 2 2 18 3 2 3 19 2 4 5 20 3 3 1
让我们创建一个如下所示的数据框df2:
> x<-sample(1:5,20,replace=TRUE) > y<-sample(1:5,20,replace=TRUE) > z<-sample(1:5,20,replace=TRUE) > df2<-data.frame(x,y,z) > df2
执行上述脚本后,将生成以下输出(由于随机化,此输出将在您的系统上有所不同):
x y z 1 3 3 2 2 3 1 2 3 4 5 5 4 3 2 3 5 1 1 5 6 3 1 4 7 5 5 4 8 4 1 2 9 2 1 1 10 3 1 1 11 2 2 2 12 5 5 1 13 4 3 5 14 1 1 1 15 1 2 1 16 1 3 2 17 4 5 1 18 1 2 4 19 2 4 2 20 5 4 4
合并两个数据框
使用merge函数合并df1和df2:
> DF<-merge(df1,df2,by=c("x","y","z"),all=FALSE) > DF
x y z 1 1 1 1 2 1 3 2 3 3 2 3 4 3 3 2
广告