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

如何用tidyverse包创建简洁的配对t检验结果表格?

使用tidyverse批量生成配对t检验结果表格

需求说明

需要生成包含变量名、两组均值、p值的t检验结果表格,现有手动逐个变量处理的方式扩展性极差,希望通过单条tidyverse管道实现,且支持传入变量名向量批量处理。

解决方案

利用tidyr::pivot_longer将数据转为长格式,结合dplyr::group_by+summarise批量计算均值与t检验p值,全程通过单管道完成,支持任意数量的分析变量:

library(dplyr)
library(infer)
library(tidyr)

# 构造示例数据
df <- mtcars %>% 
  mutate(engine = if_else(vs == 0, "V-shaped", "straight"))

# 定义要分析的变量向量(可按需扩展)
vars_to_test <- c("mpg", "disp")

# 单管道生成结果表格
result_table <- df %>%
  select(all_of(vars_to_test), engine) %>%
  pivot_longer(cols = -engine, names_to = "name", values_to = "value") %>%
  group_by(name) %>%
  summarise(
    V_shaped = mean(value[engine == "V-shaped"], na.rm = TRUE),
    straight = mean(value[engine == "straight"], na.rm = TRUE),
    p_value = t_test(value ~ engine, alternative = "two-sided")$p_value,
    .groups = "drop"
  )

result_table
#> # A tibble: 2 × 4
#>   name  V_shaped straight    p_value
#>   <chr>    <dbl>    <dbl>      <dbl>
#> 1 disp     307.     132.  0.00000248
#> 2 mpg       16.6     24.6 0.000110

方法优势

  • 扩展性强:只需修改vars_to_test向量即可添加/移除分析变量,无需重复编写代码
  • 简洁高效:单条管道完成所有操作,避免手动拆分多步流程
  • 鲁棒性高:加入na.rm = TRUE处理缺失值,适配更多实际场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:15:36