我试图使用包装anova_test
中的功能对不平衡的双向方差分析进行事后分析rstatix
。我需要迭代运行此事后测试,因为我有〜26个响应(y)变量。我的第一个步骤是创建所有我的模型y
与相关变量group
和treatment
。我成功地做到了这一点,创建了一个包含26个模型的列表:
models <- map(data[,y1:y26], ~(lm(.x ~data$group*data$treatment)))
现在是我坚持的部分。迭代引用这些模型。我想为每个 y
变量运行以下代码:
group_by(group) %>%
anova_test(y ~ treatment, error = models(y), type = 3)
在y
每次更改的地方,以及它所做的更改,“模型”(在error =
术语中称为)都会相应地更新。因为我制作的第一组模型用于告知第二组模型,所以我为此感到困惑。
但是,如果我一次在y
整个这段代码中只运行一个变量,那么我会得到适当的结果。
model <- lm(y ~ group*treatment, data = data)
data %>%
group_by(group) %>%
anova_test(y ~ treatment, error = model, type = 3)
我曾尝试创建一个for循环以及map
在purrr
包中使用该函数,但未成功。我是for循环的新手,purrr
所以我确定这是一个简单的修复程序,只是看不到它。
基本上我想要一种跑步方式
data %>%
group_by(group) %>%
anova_test(y ~ treatment, error = model, type = 3)
对于不同的y
变量(y1, y2, ..., y26
)进行迭代,同时也引用适当的代码model
(model $ y1,model $ y2,...,model $ 26)。
谢谢你的帮助!
感谢rstudio社区论坛的Nirgrahamuk提供的答案:
map(names(models_1) ,
~ anova_test(data=group_by(df,edge),
formula = as.formula(paste0(.x,"~ trt")),
error = models_1[[.x]],
type = 3))
(请参阅以下网址的完整答案:https : //community.rstudio.com/t/trouble-using-group-by-and-map2-together/66730/8?u=mvula)
由reprex软件包(v0.3.0)创建于2020-05-20
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句