在R中简洁地创建一个区间变量

Goo*_*oze 2 r dplyr

我想创建一个新的变量,它是一个区间,但是因为有很多区间我想知道我是否可以更简洁地编写代码.我希望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,写出来是不切实际的)?

F. *_*ivé 5

我想你需要的是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)