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

如何用ggstatsplot按FAB分类批量绘制相关性散点图?

批量按FAB分类绘制相关性散点图的解决方案

数据预处理

先过滤掉FAB分类中的nc类,仅保留M0-M7分组:

library(dplyr)
# 假设你的数据集名为df
filtered_df <- df %>% 
  filter(FAB %in% paste0("M", 0:7))

方法1:ggstatsplot自带分组函数(最简方案)

ggstatsplot提供了grouped_ggscatterstats函数,专门用于按分组变量批量生成统计绘图,无需手动拆分数据集:

library(ggstatsplot)

grouped_ggscatterstats(
  data = filtered_df,
  x = AGE,
  y = Wbc,
  grouping.var = FAB, # 指定分组变量为FAB
  cor.method = "pearson", # 可选:指定相关性分析方法
  title.prefix = "FAB分类", # 子图标题前缀
  ggtheme = ggplot2::theme_bw() # 可选:调整绘图主题
)

该函数会自动为每个FAB分类生成独立散点图,并输出对应的相关性统计结果(相关系数、p值等)。

方法2:purrr+patchwork实现灵活定制

如果需要对单个子图做个性化调整,可通过purrr遍历分组生成图形,再用patchwork拼接:

library(purrr)
library(patchwork)

# 获取所有目标FAB分组
fab_groups <- unique(filtered_df$FAB)

# 遍历生成每个分组的散点图
plot_list <- map(fab_groups, function(group) {
  ggscatterstats(
    data = filtered_df %>% filter(FAB == group),
    x = AGE,
    y = Wbc,
    title = paste("FAB:", group),
    cor.method = "pearson"
  )
})

# 拼接所有图形(可调整行列数)
combined_plot <- wrap_plots(plot_list, ncol = 2)
print(combined_plot)

导出统计结果

若需要提取所有分组的相关性统计数据,可在grouped_ggscatterstats中设置output = "results":

stats_results <- grouped_ggscatterstats(
  data = filtered_df,
  x = AGE,
  y = Wbc,
  grouping.var = FAB,
  output = "results"
)
print(stats_results)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:36:08