我是R的新手。我们正在做一项作业。任务是创建R包以模仿Anova表。我创建了任务中规定的所有必要功能。该函数计算出正确的值,但我无法使其显示为R内置在anova()函数中的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(公式=凝块〜饮食,数据=凝块数据)

[[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平均Sq F值Pr(> F)
饮食3 228 76.0 13.571 4.658e-05 ***
残渣20112 5.6
---
签名代码:0‘***’0.001‘**’0.01‘*’0.05’。’0.1’’1



如何实现这种格式?我在哪里和想念什么?

非常感谢你的帮助。

国邦

最佳答案

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

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

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

08-07 17:07