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

亚组比例差值绘图失败问题求助

解决亚组比例差值绘图问题

嘿,我来帮你搞定这个亚组比例差值的可视化问题!首先咱们得先把数据整理到位,算出每个亚组里治疗组和对照组的结局比例,再算出差值,最后用ggplot画出来就行。下面是具体步骤:

第一步:加载必要的包

咱们需要用dplyr来整理数据,tidyr来转换数据格式,ggplot2来绘图,先加载它们:

library(dplyr)
library(tidyr)
library(ggplot2)

要是没装过这些包,先运行install.packages(c("dplyr", "tidyr", "ggplot2"))安装一下。

第二步:数据预处理与比例计算

首先得把你的日期转成可读格式(你给的date是R的日期数值,得转成Date类型),同时确保结局变量v169是二分类数值(0/1代表结局发生与否),治疗组变量groups_treated是分类类型:

# 转换日期格式
Dataframe$date <- as.Date(Dataframe$date, origin = "1970-01-01")

# 计算每个亚组+治疗组的结局比例
summary_df <- Dataframe %>%
  # 统一变量类型
  mutate(
    v169 = as.numeric(v169),  # 如果v169是字符/因子,先转成0/1数值,比如用ifelse(v169=="发生",1,0)
    groups_treated = as.factor(groups_treated)
  ) %>%
  group_by(date, groups_treated) %>%
  summarise(
    prop_outcome = mean(v169, na.rm = TRUE),  # 结局比例(假设v169是0/1)
    sample_size = n(),  # 可选:记录每个组的样本量
    .groups = "drop"
  )

⚠️ 注意:如果你的v169编码是1/2(比如1=未发生,2=发生),记得改成mean(v169 - 1, na.rm = TRUE)来转成0/1的比例。

第三步:计算比例差值

把数据转成宽格式,然后计算治疗组和对照组的比例差值:

summary_wide <- summary_df %>%
  pivot_wider(
    names_from = groups_treated,  # 按治疗组拆分列
    values_from = prop_outcome
  ) %>%
  # 计算差值:治疗组比例 - 对照组比例(根据你的组名调整,比如组名叫"干预"就改成`干预 - 对照`)
  mutate(prop_diff = treated - control)

第四步:绘制比例差值图

现在就可以用ggplot画出亚组的比例差值变化了,比如按日期的折线图:

ggplot(summary_wide, aes(x = date, y = prop_diff)) +
  geom_line(color = "#2c3e50", linewidth = 1) +  # 折线
  geom_point(size = 2.5, color = "#e74c3c") +  # 数据点
  geom_hline(yintercept = 0, linetype = "dashed", color = "gray50") +  # 差值为0的参考线
  labs(
    title = "各日期亚组的结局比例差值(治疗组-对照组)",
    x = "日期",
    y = "结局比例差值",
    caption = "注:差值>0代表治疗组结局比例更高"
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5))

可能遇到的问题排查

  • 如果报错pivot_wider找不到列,检查你的groups_treated的水平名称,比如是不是叫"干预"和"对照",要对应修改代码里的列名
  • 如果比例计算不对,检查v169的编码是否正确,确保是0/1数值型
  • 如果某个亚组只有治疗组或对照组数据,差值会是NA,可以用filter(!is.na(prop_diff))过滤掉

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:19:57