Мы можем использовать fixed = TRUE
, поскольку ?
является метасимволом (или экранированием (\\?
), или заключать его в квадратную скобку ([?]
), когда режим по умолчанию для grep
равен fixed = FALSE
library(dplyr)
data %>%
filter_all(all_vars(!grepl("?",., fixed = TRUE)))
# col1 col2
#1 1 2
Или используя across
из devel
версии dplyr
data %>%
filter(across(everything(), ~ !grepl("?", ., fixed = TRUE)))
# col1 col2
#1 1 2
Или используя base R
data[!Reduce(`|`, lapply(data, grepl, pattern = '?', fixed = TRUE)),]
данные
data <- data.frame(col1 = c("?", 1, 3, "?"), col2 = c(1, 2, "?", "?"),
stringsAsFactors = FALSE)