Я хочу, чтобы переопределить функцию по умолчанию predict.lm из-за ошибки:Как переопределить функцию S3 по умолчанию в R?
library(datasets)
# Just a regular linear regression
fit <- lm(mpg~disp+hp+wt+drat, data=mtcars)
termplot(fit, terms=2, se=T)
дает эту ошибку:
Error in predict.lm(model, type = "terms", se.fit = se, terms = terms) :
subscript out of bounds
Я знаю, где ошибка есть, и я послал по электронной почте, что ждет одобрение основного списка рассылки, но в то же время я хотел бы проверить свою собственную функцию expect.lm, чтобы исправить это. Я понял, что мне нужно переопределить функцию S3 для предсказать, но при выполнении этого кода:
setMethod("predict", "lm", predict.lm2)
getMethod("predict", "lm")
getMethod возвращает свою новую функцию, как и ожидалось, но termplot все еще работает старая функция. methods("predict")
также показывает, что старый файл прогноза.lm все еще существует, и я думаю, что это может быть порядок звонков или что-то, что мне нужно настроить. Кто-нибудь знаком с тем, как это сделать?
Вы можете попробовать установить класс своей модели. 'class (fit) <- c (" lm2 "," lm ")' – James
Затем он жалуется на отсутствие определения для класса lm2. –
. Вы не работаете с S3, а с S4 при использовании setMethod. Это может вызвать проблемы. –