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

R Dplyr中select语句同时选择指定列和条件匹配列的问题

问题原因

你出现报错的核心原因是误用了&符号拼接dplyr的列选择操作:

  1. &是用于数值/逻辑向量判断的运算符,不能用来拼接两个select类操作
  2. 即使去掉&用管道连续写两个select,第一个select("Year")会直接把数据集裁剪到只剩Year一列,后续select_if再筛选含Apple的列时会匹配不到结果,同样无法得到你要的输出。

正确写法

写法1(dplyr 1.0.0+ 推荐,用select+where)

直接在select里同时指定固定要保留的列和匹配规则即可:

Subset <- df %>% 
  select(Year, where(~ grepl("Apple", names(.x))))

写法2(兼容旧版dplyr的select_if写法)

把Year的匹配规则合并到select_if的正则判断里:

Subset <- df %>% 
  select_if(~ grepl("^Year$|Apple", names(.x)))

这里的正则规则会匹配列名完全等于Year或者包含Apple的所有列。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:06:04