有没有办法有一个格式良好的摘要输出(biglm)?R2HTML非常适用于摘要(lm),根本不保留格式.
library(biglm)
library(R2HTML)
d <- data.frame(x=runif(100),y=runif(100))
L <- lm(y~x,data=d)
LL <- biglm(y~x,data=d)
HTML(summary(L),file="tmp1.html")
HTML(summary(LL),file="tmp2.html")
Run Code Online (Sandbox Code Playgroud)
HTML文件tmp1.html具有相当格式:HTML文件tmp2.html包含"原始"捕获的输出summary.biglm()
为了找出这里发生了什么,你必须深入研究这些方法. HTML是一个泛型函数,所以它会根据它的类寻找一个可以在特定对象上使用的特定函数.结果summary(lm(...))是阶级的summary.lm; 相当于biglm(不出所料)summary.biglm.如果你跑
methods("HTML")
Run Code Online (Sandbox Code Playgroud)
你会看到所有定义的方法HTML; 其中大多数都在其名称后面带有星号,表示它们隐藏在R2HTML包的名称空间中.要查看类中的方法foo,你需要R2HTML:::foo.有一个R2HTML:::HTML.summary.lm函数,但没有相应的HTML.summary.biglm函数,所以调用HTML(summary(LL))(where 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))并确定您遇到错误的位置(可能使用debug()跟踪);修复文件的相应部分;重复直到完成.
其中一个问题是,一些的的内部结构之间的差异summary.lm,并summary.biglm不仅仅是化妆品,但设计上的差异-例如,summary.lm包括残差的副本(尝试names(summary(L))或str(summary(L))其中L是lm拟合),这只是不对某个biglm物体有意义.(这是一个简短的说法,这对我来说是一个太大的工作,作为一个SO问题的快速回答......)
祝好运 ...