删除R中包含特定字符串的行

时间:2014-03-07 12:08:24

标签: r string match rows

我想排除包含字符串“REVERSE”的行,但我的行与单词完全不匹配,只包含它。

我的输入数据框:

   Value   Name 
    55     REVERSE223   
    22     GENJJS
    33     REVERSE456
    44     GENJKI

我的预期输出:

   Value   Name 
    22     GENJJS
    44     GENJKI

6 个答案:

答案 0 :(得分:61)

这应该可以解决问题:

df[- grep("REVERSE", df$Name),]

或者更安全的版本是:

df[!grepl("REVERSE", df$Name),]

答案 1 :(得分:16)

其实我会用:

df[ grep("REVERSE", df$Name, invert = TRUE) , ]

如果所需的搜索词未包含在任何行中,这将避免删除所有记录。

答案 2 :(得分:4)

您可以使用stringi

中的stri_detect_fixed函数
stri_detect_fixed(c("REVERSE223","GENJJS"),"REVERSE")
[1]  TRUE FALSE

答案 3 :(得分:3)

您可以使用dplyr::filter()并取消grepl()匹配:

library(dplyr)

df %>% 
  filter(!grepl('REVERSE', Name))

或使用dplyr::filter()并取消stringr::str_detect()匹配:

library(stringr)

df %>% 
  filter(!str_detect(Name, 'REVERSE'))

答案 4 :(得分:0)

您可以使用以前提供的代码在同一数据帧(df)中使用它

df[!grepl("REVERSE", df$Name),]

或者您可以使用此代码为数据帧分配其他名称

df1<-df[!grepl("REVERSE", df$Name),]

答案 5 :(得分:0)

如果它是多个字符串,则可以使用此功能 <div class="d-flex justify-content-center flex-wrap"> <div class="card mx-2 my-4 shadow" style="width: 250px;">...</div> <div class="card mx-2 my-4 shadow" style="width: 250px;">...</div> <div class="card mx-2 my-4 shadow" style="width: 250px;">...</div> <div class="card mx-2 my-4 shadow" style="width: 250px;">...</div> <div class="card mx-2 my-4 shadow" style="width: 250px;">...</div> </div>