我aov()
在一个循环中运行。每次迭代的输出都保存为一个列表项。我model.frame()
以前检查每个aov
对象的数据框时,它们都是相同的——实际上,它们基本上都是最后一次迭代的数据框。更有趣的是,这似乎只发生在aov
包含错误项的模型中。 为了说明这一点,我使用 R 中的 ChickWeight 数据(见下文)
results<-list()
length(results2)<-4
counter<-1
for(i in unique(ChickWeight$Diet)){
results[[counter]] <- aov(weight~factor(Time) + Error(Chick),
ChickWeight[ChickWeight$Diet==i,])
counter<-counter+1
}
head(model.frame(results[[1]]), 2)
# weight factor(Time) Chick
#461 42 0 41
#462 51 2 41
head(model.frame(results[[2]]), 2)
# weight factor(Time) Chick
#461 42 0 41
#462 51 2 41
head(model.frame(results[[3]]), 2)
# weight factor(Time) Chick
#461 42 0 41
#462 51 2 41
head(model.frame(results[[4]]), 2)
# weight factor(Time) Chick
#461 42 0 41
#462 51 2 41
相反,当没有错误项时,这不会发生:
results2<-list()
length(results2)<-4
counter<-1
for(i in unique(ChickWeight$Diet)){
results2[[counter]] <- aov(weight~factor(Time),
ChickWeight[ChickWeight$Diet==i,])
counter<-counter+1
}
head(model.frame(results2[[1]]), 2)
# weight factor(Time)
#1 42 0
#2 51 2
head(model.frame(results2[[2]]), 2)
# weight factor(Time)
#221 40 0
#222 50 2
head(model.frame(results2[[3]]), 2)
# weight factor(Time)
#341 42 0
#342 53 2
head(model.frame(results2[[4]]), 2)
# weight factor(Time)
#461 42 0
#462 51 2
我想知道是否有人知道发生了什么。