2014-11-12 4 views
1

다른 숫자 벡터에 대해 100 ANOVA를 실행하고 싶습니다.많은 편측 ANOVA 반복 루핑

내 숫자 벡터

aa=aov(data.frame$ruy~data.frame$Group) 
anova(aa) 
ab=aov(data.frame$fjr~data.frame$Group) 
anova(ab) 
ac=aov(data.frame$akf~data.frame$Group) 
anova(ac) 
..... 
..... 

내 루프 기술은 너무 좋은 주시기 바랍니다 가난한 내 data.frame에서 (루이, FJR, AKF ....)이다. aov 이후

답변

0

lm을 기반으로 할 수 있습니다 별도의 모델에서 실행되고 초래 LHS에 cbind 종속 변수 : 당신은 응답을 통해 루프 목록을 만들 수 있습니다 또는

formula <- as.formula(paste0("cbind(", paste(names(iris)[-5], collapse = ","), ") ~ Species")) 

fit <- aov(formula, data=iris) 
summary(fit) 
# Response Sepal.Length : 
#    Df Sum Sq Mean Sq F value Pr(>F)  
#Species  2 63.212 31.606 119.26 < 2.2e-16 *** 
#Residuals 147 38.956 0.265      
#--- 
#Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
# 
# Response Sepal.Width : 
#    Df Sum Sq Mean Sq F value Pr(>F)  
#Species  2 11.345 5.6725 49.16 < 2.2e-16 *** 
#Residuals 147 16.962 0.1154      
#--- 
#Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
# 
#</snip> 
+0

내가 NA : s를 많이 가지고 있다고 써야했고, ANOVA를 수동으로 할 때 R은 무시했다. 나는 NA를 0으로 취급하고 싶지 않습니다. – Einar

0

어디에서 각 eleemnt 대응 롤랜드 (Roland)의 탁월한 답변 대신 여러 모델을 사용하여 여러 응답으로 '단일'모델을 생성합니다. 이것은 당신이 (이후 단계에서) 원하는 경우 usefule 될 별도로 생성 된 모델과 함께 일할 수 :

lapply(modelList, summary) 

로 : 그런 다음 aov 모델에 summary을 실행 다시 lapply를 사용할 수

responseList <- names(iris)[-5] 
modelList <- lapply(responseList, function(resp) { 
          mF <- formula(paste(resp, " ~ Species")) 
          aov(mF, data = iris) 
       }) 

롤랜드의 솔루션은 다중 응답 모델 (class(fit))을 제공하는 반면 위의 솔루션은 (단일) 응답 모델 목록을 제공합니다. 당신이 선호하는 것이 무엇이든간에 그것은 당신이 결과를 가지고 어떻게 작업 하느냐에 달려 있습니다.