添加本地的knitr打印方法

3
我希望找到一种方法来调整通常在查看器或浏览器中显示HTML表格的功能,使它们在调用时自动将HTML插入到像rnotebooks这样的knitr文档中。
具体而言,我想改变sjPlot包中的函数行为方式。目前它们返回一个带有$knitr属性的对象,必须手动插入,然后在查看器中生成一个HTML表格:
`r sjt.frq(efc$e42dep, no.output=TRUE)$knitr`

其中之一的函数是sjt.frq。有没有办法做到这一点?

1个回答

3

From knit_print:

library(knitr)
a = 42
class(a) = "my_class"
knit_print.my_class = function(x,...){
    res = paste("{{", x,"}}")
    asis_output(res)
}
a

当我编织文档时,它可以正常工作,但在RNotebooks中和sjt.frq中无法正常工作。然而,在RNotebook中,以下语句可以正常工作:

library(sjPlot)
library(sjmisc)
library(knitr)

data(efc)
asis_output(sjt.frq(efc$e42dep, no.output=TRUE)$knitr)

我的经验是最好获取字符输出并将其包装在 asis_output 中。 - Benjamin
@Benjamin 你是否指的是$output.complete中的“字符输出”? - Gregory Demin
我不熟悉这个对象。你需要一个HTML代码的字符字符串。将字符字符串放入asis_output中与使用相同的字符串和块选项output='asis'cat相同。 - Benjamin
htmlwidgets::createWidget("datatables", if (hideDataTable) NULL else params, package = "DT", width = width, height = height, elementId = elementId, sizingPolicy = htmlwidgets::sizingPolicy(knitr.figure = FALSE, knitr.defaultWidth = "100%", knitr.defaultHeight = "auto"), dependencies = deps, preRenderHook = function(instance) { data = instance[["x"]][["data"]] .... - methodds
抱歉三次评论,我还没有足够的声望来编辑.. - methodds
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接