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

如何用ends_with助手与字符串向量选择宽格式重复测量数据框列

使用dplyr的ends_with()配合字符串向量选择宽格式数据框列

嘿,这个场景太常见了!在处理这种重复测量的宽格式数据时,dplyr包里的ends_with()助手函数刚好能和字符串向量配合,帮你高效批量选择符合结尾规则的列。下面给你一步步讲清楚怎么用:

1. 先加载必要的包

首先确保你已经安装并加载了dplyr:

library(dplyr)

2. 基础用法:用字符串向量匹配多个结尾

假设你想要同时选择所有以_Q1、_Q2和_joy结尾的列,同时保留id列作为标识,直接把字符串向量传给ends_with()就行:

# 选择id列 + 所有以_Q1/_Q2/_joy结尾的列
selected_df <- df %>%
  select(id, ends_with(c("_Q1", "_Q2", "_joy")))

这段代码会帮你筛选出:

  • id列
  • 所有列名以_Q1结尾的列(比如t1_QOL_child_Q1、t1_QOL_teen_Q1)
  • 所有列名以_Q2结尾的列(比如t1_QOL_child_Q2、t1_QOL_teen_Q2)
  • 列名以_joy结尾的t1_QOL_child_joy

完全适配你给出的重复测量数据结构!

3. 进阶:忽略大小写(可选)

如果你的列名存在大小写不一致的情况(比如有的是_q1有的是_Q1),可以加上ignore.case = TRUE参数来忽略大小写匹配:

selected_df <- df %>%
  select(id, ends_with(c("_q1", "_q2"), ignore.case = TRUE))

4. 拓展:结合其他选择函数

如果你还想同时选择以特定前缀开头的列,比如所有t1开头的列,还可以和starts_with()结合使用:

selected_df <- df %>%
  select(id, starts_with("t1"), ends_with(c("_Q1", "_Q2")))

这样就能精准筛选出你需要的所有目标列啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:12:03