看来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)))
最佳答案
从0.7.0
的dplyr
版本开始,case_when
在mutate
中起作用,如下所示:
library(dplyr) # >= 0.7.0
mtcars %>%
mutate(cg = case_when(carb <= 2 ~ "low",
carb > 2 ~ "high"))
有关更多信息:http://dplyr.tidyverse.org/reference/case_when.html
关于r - case_when在突变管道中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38649533/