前段时间他们推出一个很好的类似SQL的替代ifelse之内dplyr,即case_when.
是否有相应的data.table允许您在一个[]语句中指定不同的条件,而不加载其他包?
例:
library(dplyr)
df <- data.frame(a = c("a", "b", "a"), b = c("b", "a", "a"))
df <- df %>% mutate(
new = case_when(
a == "a" & b == "b" ~ "c",
a == "b" & b == "a" ~ "d",
TRUE ~ "e")
)
a b new
1 a b c
2 b a d
3 a a e
Run Code Online (Sandbox Code Playgroud)
它肯定会非常有用,并使代码更具可读性(这是我dplyr在这些情况下继续使用的原因之一).