You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何筛选含sp.等后缀的字符串并排除指定条目

问题解决方法

错误原因

  • 原有代码的正则表达式中未转义.:正则语法里.默认匹配任意字符,因此Antidesma cuspidatum字符串中sp后跟随的i被误识别为匹配sp.规则,导致误筛
  • 没有添加排除指定字符串的判断条件

修正后代码

写法1(dplyr 1.0.0+ 推荐的across语法)

library(dplyr)

df <- data.frame(name1 = c("Acranthera sp. 01", "Amydrium sp.01", "Alyxia sp.", "Antidesmatoideae sp.", "Antidesma cuspidatum"))

df %>%
  filter(
    grepl("sp\\.? ?", name1), # 匹配sp、sp.、sp. 三种格式
    name1 != "Antidesma cuspidatum" # 排除指定条目
  )

写法2(兼容原有filter_at语法)

df %>% 
  filter_at(
    .vars = vars(name1), 
    all_vars(grepl("sp\\.? ?",.) & . != "Antidesma cuspidatum")
  )

输出结果

name1
1    Acranthera sp. 01
2       Amydrium sp.01
3           Alyxia sp.
4 Antidesmatoideae sp.

内容的提问来源于stack exchange,提问作者Anh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:27:05