如何在 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
廣告