Перегрузка скрытых методов summary.lm в R - PullRequest
0 голосов
/ 24 апреля 2018

В R summary.lm скрыто (отмечается звездочкой, когда я смотрю на methods('summary')).

Я определил объект pvalue и функцию as.pvalue, поэтому, когда значение очень мало, метод print.pvalue печатается как символ, например, «<0,001», а не число с плавающей точкой с невероятно непрактичной точностью. </p>

Я хочу перегрузить 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 голосов
/ 24 апреля 2018

Ох, пространство имен для summary.lm равно stats::, а не base::.

...