1 min read

【技术·R】🔧 case_when使用方法

library(tidyverse)
## Warning: 程辑包'tidyverse'是用R版本4.1.3 来建造的
## Warning: 程辑包'forcats'是用R版本4.1.3 来建造的
## -- Attaching core tidyverse packages ------------------------ tidyverse 2.0.0 --
## v dplyr     1.0.7     v readr     2.1.1
## v forcats   1.0.0     v stringr   1.4.0
## v ggplot2   3.3.5     v tibble    3.1.6
## v lubridate 1.8.0     v tidyr     1.1.4
## v purrr     0.3.4     
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## i Use the [conflicted package](http://conflicted.r-lib.org/) to force all conflicts to become errors
b = data_frame(a = 1:100)
## Warning: `data_frame()` was deprecated in tibble 1.1.0.
## Please use `tibble()` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
b %>% 
  mutate(c = case_when(
    a < 11 ~ '老大',
    a < 21 ~ '老二',
    TRUE ~ '老幺'
  )) %>% 
  .$c %>% 
  table()
## .
## 老大 老二 老幺 
##   10   10   80

如果我们满足了条件

  • a < 11 ~ '老大',
  • a < 21 ~ '老二',
  • 剩下的非空都是'老幺'

and条件,是:

  • &
  • ,

或命题是|ctrl+\