R:biglm的格式化输出

时间:2011-05-05 04:47:39

标签: r

有没有办法有一个格式良好的摘要输出(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")

HTML文件tmp1.html格式相当:HTML文件tmp2.html包含来自summary.biglm()的“原始”捕获输出

1 个答案:

答案 0 :(得分:5)

为了找出这里发生了什么,你必须深入研究这些方法。 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))(其中LLbiglm个对象)将恢复为{{1}函数,它只是以相当原始的形式捕获输出。

如果你很幸运,R2HTML:::HTML.defaultsummary.lm的内部结构非常相似,你可以说summary.biglm并完成它,但这不起作用,因为HTML.summary.biglm <- R2HTML:::HTML.summary.lmsummary.lm的内部结构太不相同了。

接下来要做的就是转储summary.biglm的定义并通过其内部工作,根据需要进行更改(例如,第一遍:使用R2HTML:::HTML.summary.lm转储{{1} }到一个文件;在文件顶部添加一些代码来定义dput()作为该函数;尝试R2HTML:::HTML.summary.lm并确定您遇到错误的位置(可能使用HTML.summary.biglm来跟踪通过);修复文件的相应部分;重复直到完成。

其中一个问题是HTML(summary(LL))debug()的内部结构之间的某些差异不只是装饰性的,而是设计差异 - 例如,summary.lm包括残差的副本(尝试summary.biglmsummary.lm names(summary(L))符合str(summary(L))),这对L对象没有意义。 (这是一个简短的说法,这对我来说是一个太大的工作,作为对SO问题的快速回答......)

祝你好运......