Rmarkdown - 打印 objects 的列表而不显示那些讨厌的 [[indices]]
Rmarkdown - printing a list of objects without showing those pesky [[indices]]
这会有点罗嗦,因为没有适当的上下文,我不知道如何提出我的问题。
无需过多赘述,在我的 summarytools
包中,我通过使用 print.summarytools
的包装函数处理了 by()
objects,即 view()
。此 view()
函数可以识别通过 by
或 lapply()
创建的 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)
将只显示这两项。
这会有点罗嗦,因为没有适当的上下文,我不知道如何提出我的问题。
无需过多赘述,在我的 summarytools
包中,我通过使用 print.summarytools
的包装函数处理了 by()
objects,即 view()
。此 view()
函数可以识别通过 by
或 lapply()
创建的 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)
将只显示这两项。