使用map调用anova_test的R代码无法运行,请求排查原因
问题原因与修复方案
核心问题
你使用anova_test时参数传递格式错误:
dv、wid、within需要传入数据框中变量的名称字符串,而非直接提取向量(比如.x$DV_values是提取出的数值向量,不是变量名)。rstatix::anova_test要求这些参数对应数据框内的列名,而非向量对象。
修正后的代码
library(tidyverse) library(rstatix) social_reward_AOV_data %>% mutate( aov_within = map(data, ~{ anova_test( data = .x, dv = DV_values, # 直接用列名,无需$提取 wid = PID, within = social_reward ) %>% tidy() }) ) %>% unnest(cols = aov_within)
代码说明
- 移除
.x$前缀,直接传入列名:DV_values、PID、social_reward,完全符合anova_test的参数要求。 - 每个嵌套子数据框会被独立处理,自动匹配
DV_names中的对应因变量,最终输出所有因变量的重复测量方差分析结果。
测试验证
用你提供的示例数据运行上述代码,会得到每个因变量(amt_trusted、arousal等)的完整方差分析统计结果,包含F值、自由度、p值等关键指标。
内容的提问来源于stack exchange,提问作者Samantha Reisman
相关产品推荐
相关产品推荐

