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

R语言使用BRFSS数据绘制分组条形图时如何将计数转为组内百分比

代码调整方法

你可以通过新增分组占比计算的步骤,将绝对计数转换为veteran3各分组内的百分比,修改后代码如下:

brfss2013 %>%
  # 提前过滤两个变量的缺失值,避免无效统计
  filter(!is.na(veteran3), !is.na(sleepmore)) %>%
  group_by(veteran3, sleepmore) %>%
  summarise(count = n(), .groups = "drop_last") %>%
  # 按veteran3分组计算每个sleepmore类别的占比
  mutate(percent = count / sum(count)) %>%
  ggplot(aes(x = veteran3, y = percent, fill = sleepmore)) +
  geom_bar(stat = "identity", position = "dodge") +
  # 可选:将y轴显示为带百分号的格式,需要提前加载scales包
  scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
  labs(y = "分组内占比")

核心逻辑说明

  • summarise的.groups = "drop_last"参数会在统计完两个分组的计数后,仅保留veteran3作为后续计算的分组维度,此时sum(count)就是每个veteran3分组的总样本量
  • 如果你不想额外加载scales包,也可以直接将占比乘以100,自行拼接百分号标签:
    # 替换mutate和scale_y的代码即可
    mutate(percent = count / sum(count) * 100)
    scale_y_continuous(labels = ~paste0(.x, "%"))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:27:02