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

如何使用dplyr按行计算指定前缀列的均值?

按指定前缀列计算行均值的实现方案

原始数据集

生成数据集的R代码:

set.seed(12345)
df <- data.frame(a1 = rnorm(5), a2 = rnorm(5), a3 = rnorm(5), 
                 b1 = rnorm(5), b2 = rnorm(5), b3 = rnorm(5),
                 c1 = rnorm(5), c2 = rnorm(5), c3 = rnorm(5))

数据集内容:

a1         a2         a3         b1         b2         b3        c1          c2         c3
1  0.5855288 -1.8179560 -0.1162478  0.8168998  0.7796219  1.8050975 0.8118732  0.49118828  1.1285108
2  0.7094660  0.6300986  1.8173120 -0.8863575  1.4557851 -0.4816474 2.1968335 -0.32408658 -2.3803581
3 -0.1093033 -0.2761841  0.3706279 -0.3315776 -0.6443284  0.6203798 2.0491903 -1.66205024 -1.0602656
4 -0.4534972 -0.2841597  0.5202165  1.1207127 -1.5531374  0.6121235 1.6324456  1.76773385  0.9371405
5  0.6058875 -0.9193220 -0.7505320  0.2987237 -1.5977095 -0.1623110 0.2542712  0.02580105  0.8544517

需求说明

给定前缀向量(示例:cols <- c("a", "c")),按行计算对应前缀列(如a1/a2/a3、c1/c2/c3)的均值,输出包含这些均值的DataFrame,期望结果:

a          c
1 -0.449558319  0.8105241
2  1.052292204 -0.1692037
3 -0.004953185 -0.2243752
4 -0.072480153  1.4457733
5 -0.354655514  0.3781747

解决方案

方法1:tidyverse工具链(高效适配动态前缀)

利用purrr::map_dfc遍历前缀向量,结合dplyr::select筛选指定前缀列,再用rowMeans计算行均值,最后自动合并为DataFrame:

library(tidyverse)

cols <- c("a", "c")

result <- map_dfc(cols, ~ df %>% select(starts_with(.x)) %>% rowMeans()) %>% 
  set_names(cols)

print(result)

方法2:base R原生实现

通过正则匹配列名前缀,循环计算每个前缀对应的行均值并组装结果:

cols <- c("a", "c")

result <- data.frame()
for(prefix in cols) {
  # 匹配以当前前缀开头的列
  prefix_cols <- grep(paste0("^", prefix), names(df))
  result[[prefix]] <- rowMeans(df[, prefix_cols])
}

print(result)

方法3:dplyr rowwise + c_across(适合理解行操作逻辑)

如果需要用rowwise实现,可结合c_across指定列范围后计算均值,适合小数量前缀的场景:

library(dplyr)

cols <- c("a", "c")

result <- df %>% 
  rowwise() %>% 
  mutate(
    a = mean(c_across(starts_with("a"))),
    c = mean(c_across(starts_with("c")))
  ) %>% 
  ungroup() %>% 
  select(all_of(cols))

print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:20:29