不久前,他们在dplyr
中引入了一种很好的类SQL替代方案ifelse
,即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
这绝对会非常有用,并且会使代码更易读(这也是我在这些情况下一直使用 dplyr
的原因之一)。