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

R语言新手求助:生成多0/1变量频率占比饼图并按性别对比

解决R语言0/1分类变量饼图及性别对比问题

你当前的代码仅统计了每个变量的总案例数,未按0/1水平分组统计,且示例数据缺少性别变量,导致无法实现性别对比。以下是修正后的完整解决方案:

1. 重构带性别变量的示例数据

set.seed(99)
# 生成0/1分类变量
A = sample(c(0,1), 100, replace = T)
B = sample(c(0,1), 100, replace = T)
C = sample(c(0,1), 100, replace = T)
D = sample(c(0,1), 100, replace = T)
E = sample(c(0,1), 100, replace = T)
# 添加性别变量(男/女)
gender = sample(c("男", "女"), 100, replace = T)
# 构建数据框并转换为因子类型
df = data.frame(A, B, C, D, E, gender)
df[, c("A","B","C","D","E")] = lapply(df[, c("A","B","C","D","E")], factor)
df$gender = factor(df$gender)

2. 绘制整体各变量0/1水平分布饼图

每个变量单独展示0(否)、1(是)的占比:

library(tidyverse)

# 数据整理:转长格式+按变量+水平分组统计数量
df_long = df %>%
  pivot_longer(cols = c(A,B,C,D,E),
               names_to = "变量名",
               values_to = "水平") %>%
  group_by(变量名, 水平) %>%
  summarize(数量 = n(), .groups = "drop")

# 绘制分面饼图
ggplot(df_long, aes(x = "", y = 数量, fill = 水平)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y") +
  facet_wrap(~变量名) +
  theme_minimal() +
  theme(axis.text.x = element_blank(),
        axis.title = element_blank(),
        legend.title = element_text(text = "水平(0=否/1=是)")) +
  labs(title = "各变量0/1水平分布饼图")

3. 绘制按性别对比的各变量0/1水平饼图

通过分面实现男/女组的横向对比:

# 数据整理:按性别+变量+水平分组统计
df_gender = df %>%
  pivot_longer(cols = c(A,B,C,D,E),
               names_to = "变量名",
               values_to = "水平") %>%
  group_by(gender, 变量名, 水平) %>%
  summarize(数量 = n(), .groups = "drop")

# 绘制分面对比饼图
ggplot(df_gender, aes(x = "", y = 数量, fill = 水平)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y") +
  facet_grid(gender ~ 变量名) +
  theme_minimal() +
  theme(axis.text.x = element_blank(),
        axis.title = element_blank(),
        legend.title = element_text(text = "水平(0=否/1=是)")) +
  labs(title = "按性别对比各变量0/1水平分布")

关键修正说明

  • 新增gender变量补全性别对比所需数据
  • 调整分组逻辑:通过group_by(变量名, 水平)(或叠加gender),用n()统计每个水平的实际数量,替代原代码仅统计总案例数的错误逻辑
  • 用facet_wrap/facet_grid实现多变量、多维度的分面展示,让饼图对比更直观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:27:27