是否可以在for循环中使用aov函数?

时间:2019-06-13 08:13:08

标签: r

我想在称为“ rs_93”的数据框中计算烟度的方差值和其他一些因素。看来在同时使用aov函数和for循环时会遇到一些问题。

我已经使用str(rs_93)class(rs_93)来检查_rs_93_是一个数据帧,并使用is.atomic(rs_93)来检查它不是原子向量。

for (i in 4:13){
  a<-cor(rs_93$smoke_rate,rs_93[,i])
  print(a)
  b<-summary(aov(rs_93$smoke_rate,rs_93[,i]))
  print(b)
}
Error: $ operator is invalid for atomic vectors

1 个答案:

答案 0 :(得分:0)

aovcor不同,因为它以变量作为公式,而不是cor中的x,y,请参见?aov

  

公式   指定模型的公式

因此,下面的内容可以正常工作,mtcars用于可重复性

for(i in 3:6){
   print(cor(mtcars$mpg,mtcars[,i]))
   print(summary(aov(as.formula(paste('mpg','~',colnames(mtcars[i]))), data=mtcars)))
}