我正在使用aov()
函数来使用R执行重复测量ANOVA,例如在http://personality-project.org/r/r.anova.html站点。
datafilename <- "http://personality-project.org/r/datasets/R.appendix4.data"
data.ex4 <- read.table(datafilename, header=TRUE)
data.ex4
计算标准ANOVA允许使用etaSquared()
包中的lsr
函数或etasq()
中的heplots
函数:
aov.standard=aov(Recall~(Task*Valence),data.ex4 )
etaSquared(aov.standard)
etasq(aov.standard)
但是,在实施主体内模型时,两个功能都无法识别线性对象模型。
aov.within=aov(Recall~(Task*Valence)+Error(Subject/(Task*Valence)),data.ex4 )
etaSquared(aov.within)
etasq(aov.within)
有人有一个简单的解决方案吗? 提前谢谢。
答案 0 :(得分:5)
当您使用ezANOVA
包中的ez
函数时,会自动计算eta平方:
library(ez)
m1 <- ezANOVA(data = data.ex4, dv = Recall, wid = Subject, within = .(Task,Valence), type = 3, detailed = TRUE)
m1$ANOVA
这给出了以下输出:
Effect DFn DFd SSn SSd F p p<.05 ges
1 (Intercept) 1 4 4177.2 349.13333 47.8579339 0.002291098 * 0.910303347
2 Task 1 4 30.0 16.33333 7.3469388 0.053508297 0.067934783
3 Valence 2 8 9.8 26.86667 1.4590571 0.288250073 0.023255814
4 Task:Valence 2 8 1.4 19.26667 0.2906574 0.755343673 0.003389831
ges
列具有您需要的广义eta平方值。