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

R语言计算各国年度议会女性占比均值遇NA值问题求助

解决按国家和年度计算议会女性占比均值返回NA的问题

问题根源

从你提供的dput(head(genparla))输出可以明确看到:Percent Of Women in Chamber列是字符类型(所有数值都被引号包裹),而mean()函数仅能对数值型数据进行计算,这就是代码返回NA值并提示非数值数据警告的核心原因。

修正步骤及代码

先将字符型的百分比列转换为数值型,再按国家和年度分组计算均值:

# 合并转换与分组计算的管道代码
Newlevelgenparla <- genparla %>%
  # 将目标列从字符型转为数值型
  mutate(`Percent Of Women in Chamber` = as.numeric(`Percent Of Women in Chamber`)) %>%
  # 按国家和年度分组
  group_by(Country, Year) %>%
  # 计算均值,同时忽略NA值
  summarize(Percent_women_in_parliament = mean(`Percent Of Women in Chamber`, na.rm = TRUE),
            .groups = "drop") # 可选:取消分组状态,返回普通数据框

额外优化建议

如果数据中还有其他本该是数值型的列(比如Chamber Total Seats、Total women),可以一次性批量转换,方便后续分析:

genparla <- genparla %>%
  mutate(across(c(`Chamber Total Seats`, `Total women`, `Percent Of Women in Chamber`),
                as.numeric))

执行完转换后,你可以用str(genparla)查看列类型,确认所有目标列已转为数值型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:30:09