如何在 R 中创建具有不相等组的因子变量?得到警告

How to create factor variable with unequal groups in R? Getting warning

我正在尝试创建一个包含 3 个组的因子变量:0、1-2 和 3+。

我正在使用 cut 函数进行不等分:

set.seed(2) 
x <- rpois(n = 1000, lambda = 1.5) 

breaks <- c(0, 1, 2, 3:max(x))

cut(x, breaks = breaks, right = TRUE)


## But this gives me the following: 

Levels: (0,1] (1,2] (2,3] (3,8]


## I tried this as well: 

breaks <- c(0, seq(1, 2, by = 1), 3:max(x))


## But that gives me: 

Levels: (0,1] (1,2] (2,3] (3,4] (4,5] (5,6] (6,7] (7,8]

编辑:

以下给出了正确的级别:

breaks <- c(0, 1, 3, Inf) 
cut(x, breaks, right = FALSE, include.lowest = TRUE) 

Levels: [0,1) [1,3) [3,Inf]

但我收到一条错误消息,提示我的关卡 [2] 重复:

x.factor <- factor(x, levels = cut(x, breaks = c(0, 1, 3, Inf), right = FALSE, 
                                       include.lowest = TRUE))

不确定从这里去哪里..有什么想法吗?

这里,我们可以把最后的breaks改成大数,指定labels

grp <- cut(x, breaks = c(0:2, Inf), right = TRUE, 
        labels = c('0', '1-2', '3+'), include.lowest = TRUE)
levels(grp)
#[1] "0"   "1-2" "3+" 

head(x)
#[1] 0 2 2 0 4 4

head(grp)
#[1] 0   1-2 1-2 0   3+  3+ 
#Levels: 0 1-2 3+