删除 R 中 grepl 模式匹配周围的行
Removing rows surrounding a grepl pattern match in R
我想从 R 中的数据框中删除包含特定字符串的行(我可以使用 grepl
执行此操作),以及每个模式匹配正下方的行。使用 grepl:
删除具有匹配模式的行似乎很简单
df[!grepl("my_string",df$V1),]
我坚持的部分是如何删除包含与上述示例中 "my_string"
匹配的模式的行下方的行。
感谢大家的建议!
使用grep
,您可以获得找到模式的行号。将行号增加 1 并删除两行。
inds <- grep("my_string",df$V1)
result <- df[-unique(c(inds, inds + 1)), ]
使用tidyverse
-
library(dplyr)
library(stringr)
result <- df %>%
filter({
inds <- str_detect("my_string", V1)
!(inds | lag(inds, default = FALSE))
})
我想从 R 中的数据框中删除包含特定字符串的行(我可以使用 grepl
执行此操作),以及每个模式匹配正下方的行。使用 grepl:
df[!grepl("my_string",df$V1),]
我坚持的部分是如何删除包含与上述示例中 "my_string"
匹配的模式的行下方的行。
感谢大家的建议!
使用grep
,您可以获得找到模式的行号。将行号增加 1 并删除两行。
inds <- grep("my_string",df$V1)
result <- df[-unique(c(inds, inds + 1)), ]
使用tidyverse
-
library(dplyr)
library(stringr)
result <- df %>%
filter({
inds <- str_detect("my_string", V1)
!(inds | lag(inds, default = FALSE))
})