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

在dplyr中使用选择辅助函数精准匹配以"500"结尾的变量

dplyr 筛选仅以"500"结尾变量的解决方案

ends_with()属于简单后缀匹配,不会校验后缀前的字符类型,所以会命中所有末尾三位是500的变量,包括2500、1500这类四位数字结尾的变量。你可以搭配matches()选择器用正则规则实现精准筛选:

核心实现代码

library(dplyr)

# 筛选符合要求的变量
result_df <- df %>% 
  select(matches("(?<!\\d)500$"))

规则说明

正则(?<!\\d)500$的匹配逻辑:

  • $ 限定匹配字符串的末尾位置
  • 500$ 要求字符串末尾恰好是500三个字符
  • (?<!\\d) 是负向回顾断言,要求500的前一个字符不能是数字,自然就排除了2500、1500这类四位数字结尾的情况

适配特殊场景

如果你的变量名是纯数字(比如变量名就是500、1500、2500),可以用更简单的精确匹配逻辑:

result_df <- df %>%
  select(where(~ grepl("^\\d{3}$", .x) & .x == "500", .cols = names(.)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:15:04