如何在R语言的grepl函数过滤时排除特定行?
解决方案
可以通过逻辑或结合grepl()的取反操作(!)来实现需求:
# 假设数据框为df,日期列名为date_col filtered_df <- df[grepl("30\\.12\\.2019 bis 05\\.01\\.2020", df$date_col) | !grepl("2019", df$date_col), ]
关键逻辑解释
grepl("30\\.12\\.2019 bis 05\\.01\\.2020", df$date_col):精准匹配你需要保留的那一行,匹配成功返回TRUE!grepl("2019", df$date_col):!是取反符号,这里表示筛选出**不包含"2019"**的行(grepl("2019", ...)匹配到含2019的行返回TRUE,加!后变成FALSE,从而排除这些行)|:逻辑或运算符,只要满足两个条件中的任意一个,该行就会被保留
注意点
正则表达式里的.是特殊字符(匹配任意单个字符),所以要匹配实际的点号,需要用\\.转义。
内容的提问来源于stack exchange,提问作者Fendi
相关产品推荐
相关产品推荐

