方差分析 Table 每次处理 R 的观察次数不同

ANOVA Table with different number of observations per treatment R

我正在尝试在 R 中使用数据创建方差分析 table,其中每次处理的观察次数不同,但我只知道如何在所有处理的观察次数相同的情况下执行此操作。任何帮助,将不胜感激。

设置数据集后,我尝试使用:

> 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')

对于这个答案,我们假设 rArBrC 是三个向量。 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))))
)

然后,您可以使用这个新数据框执行方差分析。

anv <- aov(Y~treatment, data=Data)
anova(anv)