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

R使用mutate()创建多变量均值新变量结果全为NA问题求助

代码错误原因
  • 第一个错误:mean()函数中传入的是带双引号的"v1"~"v6"字符串,而非数据框内的数值变量,对字符串计算数值均值会直接返回NA。
  • 第二个错误:基础mean()函数默认计算所有传入值的全局均值,即使去掉引号,运行后所有行的intp.trust也会是同一个全局固定值,无法实现你要的每行6个变量的独立行均值需求。
正确实现方案

优先使用效率更高的rowMeans()写法:

library(dplyr)
evs <- mutate(evs, 
              intp.trust = rowMeans(across(c(v1, v2, v3, v4, v5, v6)), na.rm = TRUE))

如果偏好更直观的行级计算逻辑,也可以用rowwise()语法:

library(dplyr)
evs <- evs %>%
  rowwise() %>%
  mutate(intp.trust = mean(c(v1, v2, v3, v4, v5, v6), na.rm = TRUE)) %>%
  ungroup() # 取消行分组,避免影响后续数据处理

参数说明:na.rm = TRUE代表计算均值时自动忽略行内的缺失值,如果你需要只要对应行有一个变量为缺失,均值就返回NA,可以删除这个参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:24:03