看起来dplyr::case_when
在dplyr::mutate
调用中的行为与其他命令不同。例如:
library(dplyr)
case_when(mtcars$carb <= 2 ~ "low",
mtcars$carb > 2 ~ "high") %>%
table
工作原理:
.
high low
15 17
但是将 case_when
放在 mutate
链中:
mtcars %>%
mutate(cg = case_when(carb <= 2 ~ "low",
carb > 2 ~ "high"))
最终结果如下:
Error: object 'carb' not found
虽然这个可以正常工作
mtcars %>%
mutate(cg = carb %>%
cut(c(0, 2, 8)))
case_when
的部分这里,以及这里。 - Sumedhcut
而不是case_when
。cut
有一个labels
参数,可以重命名结果类别。 - Paul Rougieux