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

在R中对名称为SECOND加数字的列按行求和的方法

解决R中指定列名前缀+数字的行求和问题

方法1:Base R 原生实现

直接用正则匹配列名,再做行求和,无需额外安装工具包:

# 假设你的数据框名为df
df$second_total <- rowSums(df[, grepl("^SECOND\\d+$", names(df))], na.rm = TRUE)
  • grepl("^SECOND\\d+$", names(df)):用正则筛选列名,只保留以SECOND开头、后面跟纯数字的列(精准匹配SECOND1到SECOND54,自动排除SECONDother)
  • na.rm = TRUE:可选参数,用来忽略列中的NA值,避免求和结果变成NA;如果你的数据没有NA,可以去掉这个参数

方法2:tidyverse 工具包实现

如果你习惯用dplyr的管道语法,可以这么写:

library(dplyr)

# 方式一:select + rowSums(简洁高效)
df <- df %>%
  mutate(second_total = rowSums(select(., matches("^SECOND\\d+$")), na.rm = TRUE))

# 方式二:rowwise + c_across(适合更复杂的逐行运算场景)
df <- df %>%
  rowwise() %>%
  mutate(second_total = sum(c_across(matches("^SECOND\\d+$")), na.rm = TRUE)) %>%
  ungroup()
  • matches("^SECOND\\d+$"):dplyr中用于正则匹配列名的函数,作用和base R里的grepl一致
  • rowwise():将数据框按行分组,配合c_across()可以灵活指定需要计算的列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 01:49:59