重复测量方差分析的 DATANOVIA 指南中的一些样本数据:
library(tidyverse)
library(ggpubr)
library(rstatix)
data("selfesteem", package = "datarium")
selfesteem <- selfesteem %>%
gather(key = "time", value = "score", t1, t2, t3) %>%
convert_as_factor(id, time)
res.aov <- anova_test(data = selfesteem, dv = score, wid = id, within = time)
get_anova_table(res.aov)
我想使用report
来自出版商 EasyStats ( https://github.com/easystats/report ) 的软件包。它接受 、 或 类的aov
ANOVAanova
对象aovlist
。ANOVA 中的对象rstatix
属于类anova_test
,因此与report
.
有什么方法可以转换对象类,还是应该使用基 R 进行重复测量方差分析?
回复 1(已被删除):
class(res.aov) <- "aov"
或class(res.aov) <- c("aov", class(res.aov))
。您可以添加或更改对象的类属性
所以我尝试了这个:
> res.aov <- anova_test(data = selfesteem, dv = score, wid = id, within = time)
> report(res.aov)
Error in report.default(res.aov) :
The input you provided is not supported yet by report :(
然后你的建议:
> class(res.aov) <- c("aov", class(res.aov))
> report(res.aov)
Error in UseMethod("anova") :
no applicable method for 'anova' applied to an object of class "c('aov', 'anova_test', 'list', 'rstatix_test')"
类更改似乎已经奏效,但将对象传递给report
. 我该如何进行?
附带说明一下,如果有人可以澄清这些是否等效,我的问题可以通过将我的 ANOVA 传递给基础 R 来解决:
是
anova_test(response ~ A * B + Error(subject/(A * B)))
在rstatix
相当于
aov(response ~ A * B + Error(subject/(A * B)))
在stats
?