方差分析 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')
对于这个答案,我们假设 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))))
)
然后,您可以使用这个新数据框执行方差分析。
anv <- aov(Y~treatment, data=Data)
anova(anv)
我正在尝试在 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')
对于这个答案,我们假设 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))))
)
然后,您可以使用这个新数据框执行方差分析。
anv <- aov(Y~treatment, data=Data)
anova(anv)