Rmarkdown - 打印 objects 的列表而不显示那些讨厌的 [[indices]]

Rmarkdown - printing a list of objects without showing those pesky [[indices]]

这会有点罗嗦,因为没有适当的上下文,我不知道如何提出我的问题。

无需过多赘述,在我的 summarytools 包中,我通过使用 print.summarytools 的包装函数处理了 by() objects,即 view()。此 view() 函数可以识别通过 bylapply() 创建的 objects,并将其组件分派给包的 print(),并使用与标题和脚注相关的适当参数,依此类推(第一个元素不会收到与第二个或最后一个相同的参数)。

Link 打包开发页面:

该软件包提供两种呈现内容的方式:rmarkdown 通过 pander,以及 HTML 和 RStudio 的 htmltools。就rmarkdown/pander而言,我已经取得了令人满意的结果。对于 rmarkdown 文档中的 HTML 渲染,情况并非如此。

例如:

library(devtools)
install_github("dcomtois/summarytools", ref = "dev-current")
library(summarytools)

# call the descr() function through by() to get stats by gender
groupstats <- by(data = exams, INDICES = exams$gender, FUN = descr)

# Use the view() function to neatly display results
view(groupstats, method = 'render')

此示例可用作 Gist on github

编织后的结果:

我试了好几样东西,none满意。由于 summarytool 的 print 方法返回的 objects 是 class shinytag,(也许)理想的解决方案是将所有这些组合成一个 class [=22] 的列表=],但我不知道有什么方法可以用 htmltools 做到这一点。在我看来,精心挑选列表元素会带来麻烦,因为里面有很多 list-nesting。

我试过 lapply(groupstats, print, method = 'render'),但我没有 [[n]],而是 $names 出现了。

所以我的问题是:我怎样才能去掉输出中的[[n]]

包源码 有关包源代码的相关卡盘,请参阅 summarytool's dev-current branch 中的 R/view.R 文件,第 78 -116 行。

如果您有 list() 个将打印为 HTML 的项目,您可以使用 htmltools::tagList() 将它们放在一起,列表的索引将不会显示。例如,

library(htmltools)
thelist <- list(a, b)

可能会像您的示例中那样与 [1][2] 一起显示,但是

tagList(thelist)

tagList(a, b)

将只显示这两项。