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 –