【发布时间】:2017-09-27 12:26:06
【问题描述】:
我觉得应该有一种有效的方法来使用case_when 和contains 对带有dplyr 的新列进行变异,但无法使其正常工作。
我知道在 mutate 中使用 case_when 是“有点实验性的”(如在 this 帖子中),但如果您有任何建议,将不胜感激。
不起作用:
library(tidyverse)
set.seed(1234)
x <- c("Black", "Blue", "Green", "Red")
df <- data.frame(a = 1:20,
b = sample(x,20, replace=TRUE))
df <- df %>%
mutate(group = case_when(.$b(contains("Bl")) ~ "Group1",
case_when(.$b(contains("re", ignore.case=TRUE)) ~ "Group2")
)
【问题讨论】:
-
我相信
contains只能在select内部使用。至少,这是我从?contains的文档中收集到的。 -
谢谢 - 是的,我认为这可能是真的,但从文档中不确定。似乎在
mutate中也可能有用,尽管下面的grep解决方案是一个不错的选择。