4
>str(set)
'data.frame': 1000 obs. of 6 variables:
$ ID : Factor ..
$ a : Factor ..
$ b: Factor ..
$ c: Factor ..
$ dat : num ..
$ contrasts : Ord.factor ..
>X
[1] "a" "b" "c"
for (i in 1 :length(X)){
my=X[i]
f=as.formula(paste("dat~contrasts*", paste(my,"Error(ID/(contrasts))",sep="+")))
sum = summary(aov (f, data =set))
}
X可以是非常巨大的,所以想到了一个应用函数,而不是for-loop.Is它可能在这种情况下?Anova,for循环应用函数
我尝试这样做:
apply(
as.matrix(X), 1, function(i){
summary(aov(as.formula(paste("dat~contrasts*",
paste(i, "Error(ID/(contrasts))", sep="+"))), data=set))
}
)
但是,这是没有意义的。谁能帮我?
如果'X'是一个向量,那么'sapply'更合适,但这实际上只是编写for循环的一个更好的方法,它实际上并不会加快代码的速度。 –
@Ashley:不错,你把str()的信息,但如果你给我们一些玩具数据集来玩,它会更好。另请参阅http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –