You need to enable JavaScript to run this app. 如何在R中对列表数据执行双分组emmeans_test检验
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中对列表数据执行双分组emmeans_test检验

R列表批量执行emmeans_test检验解决方案

错误原因

  • 原代码语法存在疏漏:group_by=group1参数后缺少逗号分隔符
  • 逻辑不匹配:emmeans_test()本身不直接接收group_by参数,你原有单数据框逻辑是先分组再执行检验,该流程未封装到lapply的迭代逻辑中

正确实现代码

基础lapply写法

# 注:请先将你的列表变量名从list改为df_list,避免和R内置list函数冲突
statistic <- lapply(df_list, function(x) {
  x %>%
    group_by(group1) %>%
    emmeans_test(calc ~ group2, p.adjust.method = "bonferroni")
})

tidyverse purrr简化写法

如果习惯使用tidyverse生态,可采用更简洁的map函数实现:

library(purrr)
statistic <- map(df_list, ~ .x %>%
                  group_by(group1) %>%
                  emmeans_test(calc ~ group2, p.adjust.method = "bonferroni"))

结果合并(可选)

如果需要把所有列表的检验结果合并为单个数据框,可使用以下代码:

statistic_combined <- map_dfr(df_list, ~ .x %>%
                  group_by(group1) %>%
                  emmeans_test(calc ~ group2, p.adjust.method = "bonferroni"),
                  .id = "df_id")

新增的df_id列会标注结果来自原列表的对应位置。

注意事项

  • 请确保列表内所有数据框都包含group1、group2、calc三个字段,否则会执行报错
  • 禁止使用list作为自定义变量名,避免覆盖R内置函数引发异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 01:45:04