2012-11-16 4 views
3

저는 R이 처음이에요. 우리가 작업하고있는 과제가 있습니다. 할당은 Anova 테이블을 모방 한 R 패키지 생성에 있습니다. 나는 임무에 위임 된 모든 필요한 기능을 창조했다. 이 함수는 정확한 값을 계산하지만, R이 anova() 함수로 작성한 ANOVA 테이블처럼 표시 할 수 없습니다.ANOVA 출력과 일치하도록 서식 사용자 지정 요약 출력을 R

 
Analysis of Variance: 
oneway.formula(formula = coag ~ diet, data = coagdata) 

[[1]] 
     Sum of Squares Deg. of Freedom 
diet    228    3 
Residual   112    20 

$`Mean Sq.` 
     1 
[1,] 76.0 
[2,] 5.6 

$`F Value` 
     1 
13.57143 

$p.value 
      1 
4.658471e-05 

실제 ANOVA 출력 :

 
Analysis of Variance Table 

Response: coag 
      Df Sum Sq Mean Sq F value Pr(>F)  
diet  3 228 76.0 13.571 4.658e-05 *** 
Residuals 20 112  5.6      
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

어떻게이 형식을 달성 할 수 이것은이 출력 내 summary.oneway 기능

summary.oneway <- function(object, ...){ 

    #model <- oneway(object) 
    fval <- object$FValue 
    TAB <- list(t(object$AOV), "Mean Sq."= rbind(object$MSB, object$MSW), 
       "F Value" = fval, p.value = object$p.value) 

    res <- list(call=object$call, onewayAnova = TAB) 
    class(res) <- "summary.oneway" 
    res 
} 

입니까? 어디에서 무엇을 놓치고 있습니까?

도움을 주셔서 대단히 감사합니다.

쿠니

답변

2

는 분산 분석 출력은 당신이 가장 가능성이 당신의 자신의 인쇄 기능

print.oneway <- function(object, ...) { 
    foo 
    bar 
} 
+0

감사를 만들 것입니다 methods(print)을보고 특별히 stats:::print.anova

수행 할 수 있습니다 print.anova 인쇄 방법을 사용 나를 올바른 방향으로 가리키기 위해서. 내가 언급 한 것처럼 인쇄 기능을 가지고 있지만 여전히 목록을 인쇄하고있었습니다. printCoefmat()를 사용하고 data.frame을 인수로 제공 했으므로 제대로 작동했습니다. – user1828605

+0

도움이 되니 기쁩니다. 적절한'print' 메소드가 사용되도록'class (obj)'를 수정할 수도 있습니다. –