如何合併包含一個公共列的多個 R 資料框?
要合併包含一個公共列的多個 R 資料框,我們可以按照以下步驟操作:
- 首先,建立多個數據框。
- 然後,使用 plyr 包中的 join_all 函式來合併資料框。
建立資料框
讓我們建立一個如下所示的資料框:
> x<-sample(LETTERS[1:4],10,replace=TRUE) > y1<-rpois(10,5) > df1<-data.frame(x,y1) > df1
執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出會在您的系統上有所不同):
x y1 1 A 6 2 B 10 3 A 4 4 C 5 5 C 3 6 C 6 7 B 2 8 B 10 9 D 1 10 D 3
讓我們建立一個名為 df2 的資料框,如下所示:
> x<-sample(LETTERS[1:10],10) > y2<-rpois(10,5) > df2<-data.frame(x,y2) > df2
執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出會在您的系統上有所不同):
x y2 1 E 2 2 A 7 3 I 0 4 H 6 5 C 4 6 D 10 7 J 3 8 G 5 9 F 4 10 B 5
讓我們建立一個名為 df3 的資料框,如下所示:
> x<-sample(LETTERS[1:5],10,replace=TRUE) > y3<-rpois(10,2) > df3<-data.frame(x,y3) > df3
執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出會在您的系統上有所不同):
x y3 1 C 1 2 C 4 3 A 2 4 C 1 5 C 1 6 B 0 7 D 2 8 D 3 9 D 4 10 D 0
讓我們建立一個名為 df4 的資料框,如下所示:
> x<-sample(LETTERS[1:8],10,replace=TRUE) > y4<-rpois(10,8) > df4<-data.frame(x,y4) > df4
執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出會在您的系統上有所不同):
x y4 1 G 7 2 B 9 3 G 6 4 G 8 5 G 9 6 F 11 7 H 10 8 D 10 9 E 7 10 E 9
合併所有資料框
使用 join_all 函式列出資料框,並使用 list 函式將它們合併:
> library(plyr) > df<-join_all(list(df1,df2,df3,df4),by="x",type="inner") > df
x y1 y2 y3 y4 1 B 10 5 0 9 2 B 2 5 0 9 3 B 10 5 0 9 4 D 1 10 2 10 5 D 1 10 3 10 6 D 1 10 4 10 7 D 1 10 0 10 8 D 3 10 2 10 9 D 3 10 3 10 10 D 3 10 4 10 11 D 3 10 0 10
廣告