首页 > 解决方案 > 根据数据框(R)的任何列中的值删除行

问题描述

我遇到了与此处发布的相同的问题,例如: 根据数据框任何列中的值删除行, 但希望在 R 中提供解决方案。有人可以帮忙吗?

标签: r

解决方案


一种选择filter_at来自dplyr

library(dplyr)
df1 %>%
    filter_at(vars(col1, col2),  all_vars(!str_detect(., "December 31,$")))
#               col1 col2 col3
#1 December 31, 2019   21   22
#2          countryB   19   23
#3          countryC   18   14

base RReducegrep

df1[!Reduce(`|`, lapply(df1[c('col1', 'col2')], grepl,
          pattern = "December 31,$")),]
#               col1 col2 col3
#2 December 31, 2019   21   22
#3          countryB   19   23
#4          countryC   18   14

数据

df1 <- structure(list(col1 = c("December 31,", "December 31, 2019", 
"countryB", "countryC"), col2 = c("December 31,", "21", "19", 
"18"), col3 = c(NA, 22, 23, 14)), class = "data.frame", row.names = c(NA, 
-4L))

推荐阅读