You need to enable JavaScript to run this app. R语言中如何按行统计列名前缀为q5且值等于10的列数
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何按行统计列名前缀为q5且值等于10的列数

实现行内指定前缀列的10值计数

tidyverse 实现(推荐)

通过内置列选择器自动匹配目标列,无需手动枚举列名,可直接适配包含q1、q2、q3等多前缀列的大尺寸数据框:

library(dplyr)

demo <- demo %>%
  mutate(
    tens = rowSums(across(starts_with("q5")) == 10, na.rm = TRUE)
  )
  • starts_with("q5") 为tidyselect内置列选择器,自动筛选所有列名以q5开头的列,不受后续列后缀(a/b/c等)影响
  • 对选中的列逐元素判断是否等于10,生成由TRUE/FALSE组成的逻辑矩阵(逻辑值默认对应数值1/0)
  • rowSums 按行汇总逻辑值,搭配na.rm = TRUE自动排除缺失值,不会将NA误判为10,计算结果与示例预期完全匹配。该写法为向量化运算,大表运行效率远高于逐行循环的实现方式。

R 基础包实现

不依赖第三方包的等效写法:

# 正则匹配筛选所有q5开头的列
q5_cols <- grepl("^q5", names(demo))

# 逐行统计等于10的数量,新增tens列
demo$tens <- rowSums(demo[, q5_cols] == 10, na.rm = TRUE)
  • 通过grepl正则匹配列名,精准定位所有q5开头的列
  • 后续统计逻辑与tidy版完全一致,自动忽略缺失值完成计数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 09:06:06