-3
作为项目的一部分,我需要在csv文件的各个列之间执行anova
分析。有没有什么办法可以编写一个循环来执行所有列之间的anova
而不是单独执行?
现在我正在使用下面的代码。从R环中选择最高的F值
anova(colx,col1)
anova(colx,col2)
.
.
.
anova(colx,coln)
我想自动执行此过程并选择给出最大F值的列。
作为项目的一部分,我需要在csv文件的各个列之间执行anova
分析。有没有什么办法可以编写一个循环来执行所有列之间的anova
而不是单独执行?
现在我正在使用下面的代码。从R环中选择最高的F值
anova(colx,col1)
anova(colx,col2)
.
.
.
anova(colx,coln)
我想自动执行此过程并选择给出最大F值的列。
如果DDF是具有所有列(mtcars在这里举例)数据帧,尝试:
ddf = mtcars
maxfval=0; a=1; b=1
len= length(ddf)
for(i in 1:len) for(j in 1:len){
if(i!=j){
fval = anova(aov(ddf[,i]~ddf[,j]))$F[1]
if(fval>maxfval) {maxfval=fval; a=i;b=j}
}
}
cat('\nMax F value=',maxfval, '\nWith columns=',a,',',b,'\n')
输出:
Max F value= 130.9989
With columns= 3 , 2
一种方法将结合'combn()',' lapply()','anova()',通过'[['然后搜索最大统计量...,没有样本数据,这就是我要去的那一部分的提取 – Chase 2014-09-21 01:12:20
你能更具体一些请? – 2014-09-21 01:17:58
什么版本的'anova()'接受那样的列名?尝试做一个实际的[可重现的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – MrFlick 2014-09-21 02:29:15