我正在尝试在R中创建一个Anova表,其中的数据中每个治疗的观察次数不同,但是我只知道如何在所有治疗中使用相同数量的观察来做到这一点。任何帮助,将不胜感激。
设置数据集后,我尝试使用:
> tmA=tm = gl(k, 1, nA*k, factor("A"))
> tmB=tm = gl(k, 1, nB*k, factor("B"))
> tmC=tm = gl(k, 1, nC*k, factor("C"))
#nA, nB, nC represent number of observations per treatment for treatments A, B, C respectively
tm=c(tmA, tmB, tmC, tmD, tmE)
av=aov(r ~ tm)
但是我得到一个错误,因为tm的可变长度不同
> tmA=tm = gl(k, 1, nA*k, factor("A"))
> tmB=tm = gl(k, 1, nB*k, factor("B"))
> tmC=tm = gl(k, 1, nC*k, factor("C"))
#nA, nB, nC represent number of observations per treatment for
treatments A, B, C respectively
tm=c(tmA, tmB, tmC, tmD, tmE)
av=aov(r ~ tm)
Error in model.frame.default(formula = r ~ tm, drop.unused.levels =
TRUE) :
variable lengths differ (found for 'tm')
答案 0 :(得分:0)
对于这个答案,我们假设rA
,rB
和rC
是三个向量。 rA
包含对治疗A的观察,rB
包含对治疗B的观察,rC
包含对治疗C的观察。
因此,您可以执行以下操作:
Data <- data.frame(
Y=c(rA, rB, rC),
treatment = factor(rep(c("treatA", "treatB", "treatC"),
times=c(length(rA), length(rB), length(rC))))
)
然后,您可以使用此新数据框执行ANOVA。
anv <- aov(Y~treatment, data=Data)
anova(anv)