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

如何用dplyr或lapply按sp分组执行A、B组间t.test检验

针对分组的t检验实现方案

这里提供两种简洁的实现方式,无需手动拆分数据集:

Base R 原生方法

利用by()函数直接按sp分组,对每个分组内的ID组做t检验:

# 执行分组t检验
ttest_results <- by(DF, DF$sp, function(sub_df) {
  t.test(y ~ ID, data = sub_df)
})

# 查看每个sp对应的检验结果
ttest_results

by()会自动按sp拆分数据集,对每个子集执行t.test(y ~ ID),返回的结果是一个列表,每个元素对应一个sp的检验详情。

Tidyverse 整洁输出方法

如果需要结构化的表格结果,可以结合dplyr和broom包,把检验结果转换成数据框:

library(dplyr)
library(broom)

# 生成整洁的检验结果表格
tidy_ttest <- DF %>%
  group_by(sp) %>%
  group_modify(~ broom::tidy(t.test(y ~ ID, data = .x))) %>%
  ungroup()

# 查看结构化结果
tidy_ttest

这种方式会输出包含统计量、p值、置信区间等信息的规整数据框,方便后续分析和可视化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:12:11