如何合并包含一个公共列的多个 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
广告