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

如何解决R Studio中mean函数计算年龄均值返回NA的问题?

解决分组平均年龄计算结果为NA的问题

你的核心问题是类型转换没有生效:代码里的as.numeric(moma_artists_alive$Age)仅执行了转换操作,但没有将转换后的数值存回原数据框的Age列,导致后续计算时Age依然是字符类型——字符型列调用mean()会直接返回NA,哪怕加了na.rm=TRUE也无效。

修正后的代码

# 先将Age列转换为数值型并覆盖原列
moma_artists_alive$Age <- as.numeric(moma_artists_alive$Age)

# 再执行过滤、分组和平均计算
moma_artists_alive %>%
  filter(Alive == "Yes") %>%
  group_by(Gender) %>%
  summarise(av_age = mean(Age, na.rm = TRUE))

额外排查步骤

  • 确认Age列类型:执行class(moma_artists_alive$Age),确保输出是numeric
  • 排查转换产生的缺失值:如果转换后仍有大量NA,可能是原Age列包含非数值字符,可用以下代码定位异常值:
    # 找出无法转换为数值的原Age值
    unique(moma_artists_alive$Age[is.na(as.numeric(moma_artists_alive$Age))])
    
    针对这些异常值做清洗(比如替换为合理数值或删除对应行)后再计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:50:35