在 R 中使用 gsub 根据某种模式删除一些行

Use gsub in R to remove some rows based on some pattern

我有一个数据 table,其中包含一些文本列。我想删除那些 MN 后跟一些数字的行。例如 MN 894080/901060/905034,MN 90706 等

library(data.table)
dt<-data.table(
variable= c(
"MN 894080/901060/905034 - a file has some text.",
"L2 BLOCK AMER] [VVol MN 941737][DU MN 934010] a file has some text",
"MN 907068 || bdheks;",
"MN#287627/901060/905034 a file has some text ",
"MN# 944179 || a file has some text",
"(MN #927427)a file has some text",
"MN 933281 - a file has some text",
"a file has some text",
" a file has some text Mnuq"))

最终输出应如下所示:

dt
  variable
a file has some text
a file has some text Mnuq

一个grepl解决方案

dt[!grepl("MN.*\d", dt$variable)]
#                      variable
# 1:       a file has some text
# 2:  a file has some text Mnuq