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

如何按列名而非列号计算rowMeans?附示例数据框bhs1

按列名计算rowMeans的解决方案

没问题!在R里按列名而非列号计算行均值非常直观,结合你的bhs1数据框(里面包含带NA值的列),我给你几种实用的方法:

方法1:手动指定目标列名

如果需要计算均值的列数量不多,可以直接列出列名向量来选中目标列,再计算行均值:

# 定义要计算均值的列名
target_columns <- c("bhs1_1", "bhs1_2", "bhs1_3", "bhs1_4", "bhs1_5")

# 计算行均值并添加为新列(必须加na.rm=TRUE,否则NA会导致结果全为NA)
bhs1$row_mean <- rowMeans(bhs1[target_columns], na.rm = TRUE)

方法2:匹配有规律的列名(更高效)

如果你的列名有统一前缀(比如都是bhs1_开头),可以用匹配规则自动选中列,不用手动逐个输入:

基础R版本

# 匹配所有以"bhs1_"开头的列名
target_columns <- grep("^bhs1_", names(bhs1), value = TRUE)

# 计算行均值
bhs1$row_mean <- rowMeans(bhs1[target_columns], na.rm = TRUE)

tidyverse/dplyr版本

如果你习惯用dplyr的语法,也可以这样写:

library(dplyr)

bhs1 <- bhs1 %>%
  mutate(row_mean = rowMeans(select(., starts_with("bhs1_")), na.rm = TRUE))

关键提醒:一定要加上na.rm = TRUE参数!因为你的数据里存在NA值,默认情况下rowMeans遇到NA会返回NA,加上这个参数会自动忽略NA值计算有效数值的均值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:03:13