【发布时间】:2017-03-15 18:36:19
【问题描述】:
我想根据连续数据创建一个具有 3 个任意类别的新变量。
set.seed(123)
df <- data.frame(a = rnorm(100))
我会使用 base
df$category[df$a < 0.5] <- "low"
df$category[df$a > 0.5 & df$a < 0.6] <- "middle"
df$category[df$a > 0.6] <- "high"
有没有 dplyr,我猜是 mutate(),解决这个问题?
此外,有没有办法计算类别而不是选择它们? IE。让 R 计算类别的中断位置。
编辑
答案在这个thread,但是,它不涉及标签,这让我感到困惑(也可能让其他人感到困惑),因此我认为这个问题是有目的的。
【问题讨论】:
-
尝试使用
cut。见?cut。 -
@GabrielFGeislerMesevage 当然,我读过那个,但是,它不涉及罗伯特和 aichao 下面提到的标签问题。对于像我这样的初学者,我认为这个线程是有目的的。如果我错了,请纠正我。
-
dplyr 通过
case_when()函数为此提供了一个简洁的解决方案。 dplyr.tidyverse.org/reference/case_when.html