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

如何将pairwise.t.test结果转为规范数据框用于ShinyApp分析

问题描述

需要将pairwise.t.test的结果整理成指定格式的结构化表格,用于后续ShinyApp分析。现有数据集seguro1包含数值变量tmp_habilit、estciv、nmultas,以及分组变量group、group1。此前尝试的cross_df+map2方案未成功,期望输出包含variaveis、grupos、group1、group2、p.value的标准化表格。

现有数据集代码:

seguro1=structure(list(id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
13, 14, 15, 16, 17, 18, 19, 20), tmp_habilit = c(20, 21, 25, 
25, 18, 23, 9, 12, 15, 14, 15, 10, 8, 7, 11, 10, 7, 9, 1, 3), 
estciv = c(3, 3, 3, 2, 2, 1, 3, 2, 1, 2, 1, 3, 2, 2, 1, 2, 
2, 1, 3, 1), nmultas = c(1, 0, 2, 3, 2, 2, 6, 4, 3, 2, 5, 
5, 4, 13, 15, 9, 6, 10, 8, 5), group = structure(c(2L, 2L, 
2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L), .Label = c("2", "1", "3"), class = "factor"), 
group1 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("1", 
"2", "3"), class = "factor")), .Names = c("id", "tmp_habilit", 
"estciv", "nmultas", "group", "group1"), row.names = c(NA, -20L
), class = "data.frame")
正确实现代码

通过明确变量组合、运行检验并整理结果,可得到目标格式的表格:

library(purrr)
library(dplyr)
library(tidyr)
library(broom)

# 定义待分析的数值变量名和分组变量名
variaveis <- names(seguro1)[2:4]
grupos <- c("group", "group1")

# 生成变量-分组组合、运行检验并整理结果
resultado_final <- cross_df(list(variaveis = variaveis, grupos = grupos)) %>%
  mutate(
    # 对每个组合运行成对t检验(Bonferroni校正)
    ttest = map2(variaveis, grupos, ~pairwise.t.test(
      x = seguro1[[.x]],
      g = seguro1[[.y]],
      p.adjust.method = "bonferroni"
    )),
    # 将检验结果转换为整洁格式
    ttest_tidy = map(ttest, tidy)
  ) %>%
  # 展开嵌套结果
  unnest(ttest_tidy) %>%
  # 调整列名与顺序以匹配需求
  select(variaveis, grupos, group1, group2, p.value)

# 查看完整结果
print(resultado_final, n = 18)
代码说明
  • cross_df(...):生成数值变量与分组变量的所有可能组合,确保每个变量都和每个分组完成检验。
  • map2(...):批量执行成对t检验,指定Bonferroni方法校正p值。
  • map(ttest, tidy):使用broom包将原生检验结果转换为结构化数据框,便于后续处理。
  • unnest(...):将嵌套的结果展开为扁平表格,最后调整列顺序以匹配目标格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:37:14