如何合并两个长度不同的数据框,它们所有列的值都相同,但位置不同?


要合并两个长度不同的数据框,它们所有列的值都相同,但位置不同,我们可以按照以下步骤操作:

  • 首先,创建两个数据框。
  • 然后,使用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

更新于:2021年8月13日

425 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告