r中循环中的可变长度错误

问题描述:

我试图在r中循环以获得多个Anova结果。但是我不断收到以下错误:r中循环中的可变长度错误

Error in model.frame.default(formula = col ~ Total, data = phil_data, 
:variable lengths differ (found for 'Total') 

我不明白这是由于Anova在循环之外工作(请参阅代码)。任何帮助深表感谢。

multi.hist(phil_data[,c(7:23)],density=TRUE,freq=TRUE,bcol="cyan",main=" ") 
anovaresult <- anova(aov(x2 ~ Total, data=phil_data)) 
print(anovaresult) 
anovaresult <- anova(aov(x1 ~ Total, data=phil_data)) 
print(anovaresult) 

for(i in c(3, 7:23)){ 
    col <- colnames(phil_data)[i] 
    print(col) 
    anovaresult <- anova(aov(col~Total,data=phil_data)) 
    print(anovaresult) 
} 

multi.hist(phil_data[,c(7:23)],density=TRUE,freq=TRUE,bcol="cyan",main=" ") 
anovaresult <- anova(aov(x2 ~ Total, data=phil_data)) 
print(anovaresult) 
anovaresult <- anova(aov(x1 ~ Total, data=phil_data)) 
print(anovaresult) 

for(i in c(3, 7:23)){ 
    col[i] <- colnames(phil_data)[i]## add the i index 
    print(col[i]) 
    anovaresult <- anova(aov(phil_data[,col[i]]~Total,data=phil_data)) 
    print(anovaresult) 
} 
+0

非常感谢你,但它只是改变了错误: 错误model.frame.default(公式= phil_data [山口[I]〜合计,数据= phil_data,: 变量'phil_data [,col [i]]'的无效类型(列表)' –

+0

我不知道你的数据集的类型,但对我来说这工作得很好: for(i in c(1:5)){ 列印(anovaresult)列印(anovaresult)列印(anovaresult)列印(anovaresult)列印(列印)[列印] [列印] } [1] “MPG” 方差表 分析 响应:mtcars [山口[I]] Df的萨姆呎平均数呎F值PR(> F) DISP 1 808.89 808.89 76.513 9.38e-10 ** * 残差30 317.16 10.57 --- –