如何为R数据帧列中的连续重复值创建组名?

值的分组可以通过多种方式完成,一种方式是,如果我们有重复的值或唯一的值,则可以基于此设置组。如果所有值都是唯一的,则没有分组的意义,但是如果我们具有不同的值,则可以完成分组。为此,我们可以使用以下示例中所示的rleid函数。

例1

考虑以下数据帧-

> 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

例2

> 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

以上是 如何为R数据帧列中的连续重复值创建组名? 的全部内容, 来源链接: utcz.com/z/337069.html

回到顶部