3

我是 R 的新手。我正在处理一项任务。任务是创建 R 包以模仿 Anova 表。我已经创建了作业中规定的所有必要功能。该函数计算了正确的值,但我无法让它显示为 R 内置的 anova() 函数可以显示的方差分析表。这是我的 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  
}

这是输出:

方差分析:
oneway.formula(公式 = coag ~ 饮食,数据 = coagdata)

[[1]]
         平方和度数。自由的
饮食 228 3
剩余 112 20

$`平均平方`
        1
[1,] 76.0
[2,] 5.6

$`F 值`
       1
13.57143

$p.value
           1
4.658471e-05

实际方差分析输出:

方差表分析

反应:凝
          Df Sum Sq Mean Sq F 值 Pr(>F)    
饮食 3 228 76.0 13.571 4.658e-05 ***
残差 20 112 5.6                      
---
意义。代码:0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1''1

我怎样才能实现这种格式?我在哪里错过了什么?

非常感谢你的帮助。

国度

4

1 回答 1

2

Anova 输出使用print.anova 您可能想要查看的打印方法methods(print) ,特别是stats:::print.anova

您很可能想要创建自己的打印功能

 print.oneway <- function(object, ...) {
     foo
     bar
 }
于 2012-11-16T05:12:06.293 回答