繁体   English   中英

根据数据框 (R) 的任何列中的值删除行

[英]Delete row based on value in ANY column of the dataframe (R)

我有同样的问题,例如在这里发布: 删除基于数据框任何列中的值的行,但希望在 R 中找到解决方案。有人可以帮忙吗?

一种选择是filter_atdplyr

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

或者在带有Reducegrep base R

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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM