如何在 R 数据框中创建组列?
假设我们有一个名为df的数据框,其中包含两列X和Y,那么我们可以通过将df转换为data.table对象并使用list函数在X和Y中创建值列表来创建基于X和Y的组列。
查看以下示例以了解如何完成。
示例1
以下代码段创建了一个示例数据框-
x1<-rpois(20,2) x2<-rpois(20,2) df1<-data.frame(x1,x2) df1
创建了以下数据框
x1 x2 1 1 5 2 1 1 3 0 1 4 1 1 5 2 1 6 2 3 7 4 2 8 0 4 9 2 1 10 2 2 11 0 1 12 3 1 13 3 3 14 4 3 15 2 0 16 1 3 17 2 1 18 3 1 19 5 1 20 3 2
要data.table在上面创建的数据框中加载对象并为df1中的值创建组列,请将以下代码添加到上面的代码段中-
x1<-rpois(20,2) x2<-rpois(20,2) df1<-data.frame(x1,x2) library(data.table) setDT(df1)[,Group:=.GRP,by=list(x1,x2)] df1输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
x1 x2 Group 1: 1 5 1 2: 1 1 2 3: 0 1 3 4: 1 1 2 5: 2 1 4 6: 2 3 5 7: 4 2 6 8: 0 4 7 9: 2 1 4 10: 2 2 8 11: 0 1 3 12: 3 1 9 13: 3 3 10 14: 4 3 11 15: 2 0 12 16: 1 3 13 17: 2 1 4 18: 3 1 9 19: 5 1 14 20: 3 2 15
示例2
以下代码段创建了一个示例数据框-
y1<-sample(LETTERS[1:4],20,replace=TRUE) y2<-sample(LETTERS[1:4],20,replace=TRUE) df2<-data.frame(y1,y2) df2
创建了以下数据框
y1 y2 1 B C 2 B D 3 D C 4 D B 5 A B 6 D A 7 A C 8 A C 9 D B 10 C C 11 A A 12 C D 13 B C 14 C C 15 A A 16 D B 17 B A 18 C B 19 C B 20 C B
要在上面创建的数据框中为df2中的值创建组列,请将以下代码添加到上面的代码段中-
y1<-sample(LETTERS[1:4],20,replace=TRUE) y2<-sample(LETTERS[1:4],20,replace=TRUE) df2<-data.frame(y1,y2) setDT(df2)[,Group:=.GRP,by=list(y1,y2)] df2输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
y1 y2 Group 1: B C 1 2: B D 2 3: D C 3 4: D B 4 5: A B 5 6: D A 6 7: A C 7 8: A C 7 9: D B 4 10: C C 8 11: A A 9 12: C D 10 13: B C 1 14: C C 8 15: A A 9 16: D B 4 17: B A 11 18: C B 12 19: C B 12 20: C B 12