【问题标题】:Selecting the highest F value from a looped anova in R [closed]从 R 中的循环方差分析中选择最高 F 值
【发布时间】:2014-11-15 06:41:24
【问题描述】:

作为项目的一部分,我需要在 csv 文件的各个列之间执行anova 分析。有什么办法可以编写一个循环来在所有列之间执行anova,而不是单独执行?
现在我正在使用以下代码。

anova(colx,col1)
anova(colx,col2)
.
.
.
anova(colx,coln)

我想自动化这个过程并选择给出最大 F 值的列。

【问题讨论】:

  • 一种方法将结合combn()lapply()anova(),通过[[ 进行一些提取,然后搜索最大统计数据...没有样本数据,就我而言我要去
  • 您能说得更具体一点吗?
  • anova() 的哪个版本接受这样的列名?尝试制作一个实际的reproducible example

标签: r csv regression anova


【解决方案1】:

如果 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 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    相关资源
    最近更新 更多