Чтобы узнать, что здесь происходит, вам нужно немного покопаться в методах.HTML
- это универсальная функция, поэтому она ищет конкретную функцию, которую она может использовать для конкретного объекта, в зависимости от его класса.Результаты summary(lm(...))
имеют класс summary.lm
;эквивалент для biglm
равен (неудивительно) summary.biglm
.Если вы запустите
methods("HTML")
, вы увидите все методы, определенные для HTML
;большинство из них имеют звездочки после имен, что указывает на то, что они скрыты в пространстве имен пакета R2HTML
.Чтобы увидеть метод для класса foo
, вам нужно R2HTML:::foo
.Существует функция R2HTML:::HTML.summary.lm
, но нет соответствующей функции HTML.summary.biglm
, поэтому вызов HTML(summary(LL))
(где LL
- это объект biglm
) превращается в функцию R2HTML:::HTML.default
, которая просто захватывает вывод в довольно сыром видеформа.
Если вам повезло, и внутренние структуры summary.lm
и summary.biglm
были достаточно похожи, вы могли бы просто сказать HTML.summary.biglm <- R2HTML:::HTML.summary.lm
и покончить с этим, но это не работает, потому что внутренние структурыsummary.lm
и summary.biglm
слишком разные.
Следующее, что нужно сделать, - это сбросить определение R2HTML:::HTML.summary.lm
и поработать над его внутренностями, изменив его соответствующим образом (например, для первого прохода: используйте dput()
для выгрузки R2HTML:::HTML.summary.lm
в файл, добавьте немного кода вверху файла, чтобы определить HTML.summary.biglm
в качестве этой функции, попробуйте HTML(summary(LL))
и определите, где вы столкнулись с ошибкой (возможно, с использованием * 1033)* проследить); исправить соответствующий фрагмент файла; повторять до завершения.
Одна из проблем заключается в том, что некоторые различия между внутренними структурами summary.lm
и summary.biglm
не являются просто косметическими, но есть конструктивные различия - например, summary.lm
включает в себя копию остатков (попробуйте names(summary(L))
или str(summary(L))
, где L
- это lm
fit), что просто не имеет смысла для biglm
объект. (Этокороткий способ сказать, что это оказалось слишком большой работой для меня, чтобы быстро ответить на такой вопрос ...)
Удачи ...