r - 如何使用 dplyr 过滤精确匹配字符串

标签 r

我有数据表datatmp

    datatmp
        Code         Desc
       Z00.1 Description1
         Z00 Description2
         Z38 Description3
       Z38.0 Description4
       Z38.1 Description5

尝试使用

仅过滤 Z38 代码
datatmp %>% dplyr::filter(str_detect(Code,'Z38'))

但得到以下结果,其中包括。 Z38.0 和 Z38.1

   Code         Desc
    Z38 Description3
  Z38.0 Description4
  Z38.1 Description5

还尝试使用 datatmp %>% dplyr::filter(grepl('Z38',Code,fixed = TRUE)) 给出示例输出。

注意:上面的例子我只提到了一个值,即过滤条件中的Z38,实际上这些值是动态的。例子 Z38 , Z00

请建议只查找完全匹配。

最佳答案

你已经接近你的 grepl 过滤器了。将代码更改为:

datatmp %>% dplyr::filter(grepl("^Z38$", Code))

^ 符号表示字符串的开头(在这种情况下技术上没有必要),$ 符号表示字符串的结尾,因此 Z38.0 不会匹配。

关于r - 如何使用 dplyr 过滤精确匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41977763/

相关文章:

r - R 中的桑基图 : How to change the height (Y) of individual sections related to each node?

r - 如何在 ui.R 中获取 uioutput 中的值并将其发送回 server.R?

python - 网状未设置 python 路径

从 R 中的缓存对象返回逆矩阵

r - 更改 geom_bar 对象的一部分的不透明度

r - 线性回归回路和系数提取误差

r - 如何制作堆积面积图?

两个矩阵之间的行相关性

r - 我如何写 "*value* *plus-minus sign* *value* ",连同文本,以及 ggplot2,R 的注释?

返回分组数据子组的最小值