如何在R中具有相同列的两个数据框中创建行的组合?
要在R中具有相同列的两个数据框中创建行的组合,我们可以按照以下步骤操作-
首先,创建两个数据框。
然后,将数据框中的行expand.grid与do.call和cbind组合起来。
创建数据框
让我们创建一个数据框,如下所示-
Class<-sample(c("I","II","III"),6,replace=TRUE) Score<-sample(1:20,6) df1<-data.frame(Class,Score) df1
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
Class Score 1 III 1 2 III 13 3 III 10 4 I 2 5 II 7 6 II 17
让我们创建另一个数据框df2,如下所示-
例子
Class<-sample(c("I","II","III"),6,replace=TRUE) Score<-sample(1:20,6) df2<-data.frame(Class,Score) df2
Class Score 1 III 2 2 I 1 3 III 7 4 III 15 5 I 12 6 III 13
合并数据框的行
使用cbind函数expand.grid和do.call函数来组合df1和df2中的行-
Class<-sample(c("I","II","III"),6,replace=TRUE) Score<-sample(1:20,6) df1<-data.frame(Class,Score) Class<-sample(c("I","II","III"),6,replace=TRUE) Score<-sample(1:20,6) df2<-data.frame(Class,Score) do.call(cbind.data.frame,Map(expand.grid,df1=df1,df2=df2))
输出
Class.df1 Class.df2 Score.df1 Score.df2 1 III III 1 2 2 III III 13 2 3 III III 10 2 4 I III 2 2 5 II III 7 2 6 II III 17 2 7 III I 1 1 8 III I 13 1 9 III I 10 1 10 I I 2 1 11 II I 7 1 12 II I 17 1 13 III III 1 7 14 III III 13 7 15 III III 10 7 16 I III 2 7 17 II III 7 7 18 II III 17 7 19 III III 1 15 20 III III 13 15 21 III III 10 15 22 I III 2 15 23 II III 7 15 24 II III 17 15 25 III I 1 12 26 III I 13 12 27 III I 10 12 28 I I 2 12 29 II I 7 12 30 II I 17 12 31 III III 1 13 32 III III 13 13 33 III III 10 13 34 I III 2 13 35 II III 7 13 36 II III 17 13