如何为R数据帧列中的连续重复值创建组名?
值的分组可以通过多种方式完成,一种方式是,如果我们有重复的值或唯一的值,则可以基于此设置组。如果所有值都是唯一的,则没有分组的意义,但是如果我们具有不同的值,则可以完成分组。为此,我们可以使用以下示例中所示的rleid函数。
例1
考虑以下数据帧-
> x<-sample(0:2,20,replace=TRUE)输出结果> df1<-data.frame(x)
> df1
x1 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 Grp1 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
例2
> y<-sample(0:1,20,replace=TRUE)输出结果> df2<-data.frame(y)
> df2
y1 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 Category1 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
以上是 如何为R数据帧列中的连续重复值创建组名? 的全部内容, 来源链接: utcz.com/z/337069.html