如何在R中过滤掉数据框指定列以特定值开头的行
R实现过滤逻辑的方法
首先先构造和你示例一致的测试数据集:
df <- data.frame( ID = 1:4, col1 = c("042", "353", "403", "642"), col2 = c("10", "13", "03", "22"), stringsAsFactors = FALSE )
你的过滤需求对应匹配规则为:剔除col1值开头有任意个0后紧跟4的行,对应正则规则为^0*4(^匹配字符串开头,0*匹配0个或多个前缀0,4匹配目标首字符4),可以通过以下两种方式实现:
方法1:Base R实现
result <- df[!grepl("^0*4", df$col1), ]
方法2:dplyr包实现
如果你习惯tidyverse语法,可以用filter配合匹配规则:
library(dplyr) result <- df %>% filter(!grepl("^0*4", col1))
两种方法得到的结果完全一致,输出如下:
ID col1 col2 2 2 353 13 4 4 642 22
内容的提问来源于stack exchange,提问作者blueliketheclues
相关产品推荐
相关产品推荐

