R语言:排除Lot_#列以X开头的行时出现语法错误求助
问题解决:排除DataFrame中以X开头的批次号行
你遇到的+提示符是因为正则表达式未用引号包裹,R无法识别^X为合法的正则模式,认为代码未完成,所以等待继续输入。
正确写法示例
方法1:使用str_detect(dplyr风格)
all_cls4new <- all_cls4 %>% filter(!str_detect(Lot_#, "^X"))
把^X用引号括起来,让R识别这是一个匹配「以X开头字符串」的正则表达式,!符号表示排除匹配到的行。
方法2:使用grepl(更高效的逻辑向量返回)
all_cls4new <- all_cls4 %>% filter(!grepl("^X", Lot_#))
grepl直接返回与数据行对应的逻辑值,和filter搭配更直观。
方法3:基础R写法(不用dplyr管道)
all_cls4new <- all_cls4[-grep("^X", all_cls4$Lot_#), ]
grep返回匹配行的索引,加-表示取反,保留不匹配的行。
内容的提问来源于stack exchange,提问作者BubbaZinetti
相关产品推荐
相关产品推荐

