在R中重载隐藏的summary.lm方法

时间:2018-04-24 20:41:58

标签: r methods built-in overloading

在R中,summary.lm是“隐藏的”(当我查看methods('summary'))时用星号标记。

我定义了一个pvalue对象和as.pvalue函数,以便当pvalue非常小时,print.pvalue方法打印为一个字符,例如“< 0.001”而不是具有荒谬不切实际精确度的浮点数。

我想重载summary.lm以使Pr(>|t|)列成为pvalue对象而不是double。我可以复制源代码。我想尝试的另一种方法是:

summary.lm <- function (object, correlation = FALSE, symbolic.cor = FALSE, 
    ...) {
  ans <- base::summary.lm(object, correlation = FALSE, symbolic.cor = FALSE, 
    ...)
  ans$coefficients$`Pr(>|t|)` <- as.pvalue(ans$coefficients$`Pr(>|t|)`)
  ans
}

base::summary.lm不可调用。我将其更改为base::summary并使用R不知道如何停止的递归循环使R崩溃。 (任何被称为“万无一失”的东西都低估了傻瓜的力量。)

是否可以用这种方式编写这样的函数?

1 个答案:

答案 0 :(得分:0)

哦拍,summary.lm的名称空间是stats::,而不是base::