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

R语言分组统计中如何移除NA值?filter()与na.omit均无效

解决建议
  • 核心问题:你之前的过滤操作时机错误——分组后再过滤时,NA已经被当作一个分组完成统计了,必须在分组前就移除NA值。
  • 精准过滤目标列NA的代码(推荐):
data%>%
  filter(!is.na(brands_doing_enough)) %>% # 先移除目标列含NA的行
  group_by(brands_doing_enough)%>%
  summarise(Number=n())%>%
  mutate("Percentage(%)"=Number/sum(Number)*100) # 用sum(Number)替代硬编码112,避免样本数变化导致误差
  • 另一种代码方案:
    如果数据集中只有brands_doing_enough列存在NA,也可以直接用na.omit()移除所有含NA的行:
data%>%
  na.omit() %>%
  group_by(brands_doing_enough)%>%
  summarise(Number=n())%>%
  mutate("Percentage(%)"=Number/sum(Number)*100)
  • 额外提示:不要硬编码112作为分母,过滤NA后总有效样本数会变为111,用sum(Number)能自动计算当前有效样本总数,保证百分比结果准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:52:09