В 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 не знал, как остановиться. (Все, что называется «защита от дурака», недооценивает силу дураков).
Можно ли написать такую функцию таким образом?