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

在R语言中使用dplyr的select结合contains多参数筛选数据框列

使用dplyr的select结合contains多参数筛选数据框列

首先确保你已经加载了dplyr包:

library(dplyr)

根据你的需求,分两种常见场景来处理:

场景1:筛选满足任意一个包含条件的列

如果你想选中列名包含"team"、或者包含"stats"的所有列,直接在select()里依次传入多个contains()调用即可,dplyr会自动按逻辑或处理这些条件:

filtered_df <- mydf %>%
  select(contains("team"), contains("stats"))

比如这个代码会把你列名里所有带"team"前缀的列(像team.ID、team.Name等)和所有带"stats"前缀的列(像stats.GamesPlayed.#text、stats.Runs.@category等)都筛选出来。

如果你需要更精准的筛选,比如只选包含"GamesPlayed"、"AtBats"的列,同样可以这么写:

filtered_df <- mydf %>%
  select(contains("GamesPlayed"), contains("AtBats"))

场景2:筛选同时满足多个包含条件的列

如果要找列名同时包含多个关键词的列(比如既包含"stats"又包含"#text"的数值列),可以用&把多个contains()组合起来,实现逻辑与的筛选:

filtered_df <- mydf %>%
  select(contains("stats") & contains("#text"))

这个代码会选中所有列名里既有"stats"又有"#text"的列,也就是你数据里的stats.GamesPlayed.#text、stats.AtBats.#text这类列。

小提示

  • contains()默认是不区分大小写的,如果需要严格区分,可以加上参数ignore.case = FALSE,比如contains("Stats", ignore.case = FALSE)。
  • 如果你还想保留某些固定列(比如rank),可以直接把列名加在select()里,比如:
filtered_df <- mydf %>%
  select(rank, contains("team"), contains("#text"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:00:59