我想创建一个新的变量,它是一个区间,但是因为有很多区间我想知道我是否可以更简洁地编写代码.我希望for循环或函数可以做到这一点,但是现在我想出了:
require(dplyr)
mtcars %>%
mutate(
mpg_interval = if_else(mpg < 15, "<15",
if_else(mpg < 20, "15-19",
if_else(mpg < 25, "20-24",
">24")))
)
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法来使用dplyr命令制作许多间隔(即100,写出来是不切实际的)?
我想你需要的是case_when():
mtcars %>%
mutate(
mpg_interval = case_when(
mpg < 15 ~ "<15",
mpg < 20 ~ "15-19",
mpg < 25 ~ "20-24",
TRUE ~ ">24"
)
)
Run Code Online (Sandbox Code Playgroud)