R语言ggplot绘图时如何不删除行列排除NA值
问题根因
na.rm = TRUE参数位置写错了。该参数是ggplot几何图层的独立控制参数,不属于aes()美学映射的配置项,写在aes()内部时不会被识别为缺失值处理规则,因此配置不生效。
该方案全程不会修改原始数据集,不需要删除任何行、列,仅在绘图计算环节忽略NA值。
修正后代码
将na.rm = TRUE移动到geom_bar()的参数位即可:
ggplot(data, aes(x = Flavours)) + geom_bar(na.rm = TRUE) + labs(y = "Here is a label", title = "Here is the title") + theme_bw()
注意事项
na.rm为图层级生效参数,无全局设置入口。如果后续叠加其他几何图层(如geom_text添加数值标签、geom_errorbar添加误差线),需要在对应图层内单独添加na.rm = TRUE,否则对应图层仍会读取NA值触发警告或显示异常。- 运行修正代码后,条形图不会单独生成NA对应的分类条,缺失值相关的绘图警告也会同步消失,原始数据集的所有行、列均保持完整不受影响。
内容的提问来源于stack exchange,提问作者ragim
相关产品推荐
相关产品推荐

