如何在 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+
我正在尝试创建一个包含 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+