r - 如何在 R 中删除具有模式的行?

标签 r filter grepl

我有一个数据框,我想在其中删除具有特定模式的所有行。我对编译正则表达式感到困惑。

数据:

structure(list(id = 1:5, email = c("1@gmail.com", "2@gmail.com", 
"3@gmail.com", "4@pattern.com", "5@pattern.com")), class = "data.frame", row.names = c(NA, 
-5L))

我想做的是:

data <- data %>%
  filter(email != ".+@pattern.com")

但是我的正则表达式有问题。为此类模式编写正则表达式的最有效方法是什么?我的示例案例的正确正则表达式模式是什么?

最佳答案

这使用 grepl 执行正则表达式比较

libary(dplyr)

data %>%
  filter(!grepl("@pattern.com$", email))

  id       email
1  1 1@gmail.com
2  2 2@gmail.com
3  3 3@gmail.com

关于r - 如何在 R 中删除具有模式的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65668623/

相关文章:

r - 如何在申请家庭内分配?

R 函数没有返回值

c++ - 如何为自定义文件格式构建过滤器处理程序,以便可以通过 Windows 搜索搜索其内容?

r - 检测 R 中字符串的一部分(不完全匹配)

r 检查字符串是否包含特殊字符

r - R 中的这个正则表达式模式有什么问题?

r - 在多个不同的切片上应用聚合函数

r - 如何替换数据表中值的单个组件?

git - 如何设置 gitattributes 来过滤文件的一部分?

python - Django 表单上的多对多字段以逗号分隔文本而不是多重选择