值的分组可以通过多种方式完成,一种方式是,如果我们有重复的值或唯一的值,则可以基于此设置组。如果所有值都是唯一的,则没有分组的意义,但是如果我们具有不同的值,则可以完成分组。为此,我们可以使用以下示例中所示的rleid函数。
考虑以下数据帧-
> x<-sample(0:2,20,replace=TRUE) > df1<-data.frame(x) > df1输出结果
x 1 2 2 1 3 2 4 2 5 1 6 0 7 1 8 1 9 1 10 1 11 0 12 0 13 1 14 2 15 1 16 0 17 1 18 0 19 1 20 2
为x中的值创建组-
> df1$Grp<-paste0("Grp",rleid(df1$x)) > df1输出结果
x Grp 1 2 Grp1 2 1 Grp2 3 2 Grp3 4 2 Grp3 5 1 Grp4 6 0 Grp5 7 1 Grp6 8 1 Grp6 9 1 Grp6 10 1 Grp6 11 0 Grp7 12 0 Grp7 13 1 Grp8 14 2 Grp9 15 1 Grp10 16 0 Grp11 17 1 Grp12 18 0 Grp13 19 1 Grp14 20 2 Grp15
> y<-sample(0:1,20,replace=TRUE) > df2<-data.frame(y) > df2输出结果
y 1 0 2 1 3 0 4 1 5 1 6 1 7 0 8 0 9 0 10 1 11 0 12 0 13 0 14 0 15 0 16 1 17 1 18 1 19 1 20 0
为y中的值创建组-
> df2$Category<-paste0("Category#",rleid(df2$y)) > df2输出结果
y Category 1 0 Category#1 2 1 Category#2 3 0 Category#3 4 1 Category#4 5 1 Category#4 6 1 Category#4 7 0 Category#5 8 0 Category#5 9 0 Category#5 10 1 Category#6 11 0 Category#7 12 0 Category#7 13 0 Category#7 14 0 Category#7 15 0 Category#7 16 1 Category#8 17 1 Category#8 18 1 Category#8 19 1 Category#8 20 0 Category#9