过滤器 str_detect 不等于

Filter str_detect does not equal

我正在尝试筛选字符变量 var 的值,其中 不包含 句点 (.)。我正在尝试类似的东西:

d <- d %>% 
  filter(
    str_detect(var, !".")
  )

但这似乎不起作用。我认为这很容易解决,但我不太明白。

str_detect 使用正则表达式搜索匹配项,在正则表达式中 . 表示“任何字符”。您需要使用 \. 以便从字面上识别句点。你的否定用错了地方:

d %>% 
    filter(
        !str_detect(var, "\.")
    )

str_detect 也有一个“否定”参数,即 returns 结果与提供的模式不匹配。这相当于上面的:

d %>% 
    filter(
        str_detect(var, "\.", negate = T)
    )