如何合併兩個長度不同的資料框,它們所有列的值都相同,但位置不同?


要合併兩個長度不同的資料框,它們所有列的值都相同,但位置不同,我們可以按照以下步驟操作:

  • 首先,建立兩個資料框。
  • 然後,使用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 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.