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ではなくapply関数を考えていました。この場合は可能でしょうか?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 –