我想排除包含字符串“REVERSE”的行,但我的行与单词完全不匹配,只包含它。
我的输入数据框:
Value Name
55 REVERSE223
22 GENJJS
33 REVERSE456
44 GENJKI
我的预期输出:
Value Name
22 GENJJS
44 GENJKI
答案 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(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>