case_when
要点有两个
- 不匹配的时候会返回 NA,而不是保持不变
- 根据顺序进行条件判断,顺序很重要
下面这段代码,
x <- 1:50
case_when(
x %% 35 == 0 ~ "fizz buzz",
x %% 5 == 0 ~ "fizz",
x %% 7 == 0 ~ "buzz",
TRUE ~ as.character(x)
)
如果不包含TRUE ~ as.character(x),会返回
[1] NA NA NA NA "fizz" NA
[7] "buzz" NA NA "fizz" NA NA
[13] NA "buzz" "fizz" NA NA NA
[19] NA "fizz" "buzz" NA NA NA
[25] "fizz" NA NA "buzz" NA "fizz"
[31] NA NA NA NA "fizz bu