首页 > 解决方案 > 如何在 R 中删除带有模式的行?

问题描述

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

数据:

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")

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

标签: rfiltergrepl

解决方案


这用于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

推荐阅读