这将有点罗嗦,因为如果没有适当的背景,我无法看到我如何提出我的问题。
在我的summarytools
包中,没有过多细节,我使用by()
的包装函数,即print.summarytools
来处理view()
个对象。此view()
函数可以标识通过by
或lapply()
创建的对象,并将其组件发送到包print()
,并提供与标题和脚注相关的适当参数,等等(第一个元素不会接收与第二个元素相同的参数,也不会接收最后一个元素。)
链接到软件包开发页面:
该软件包提供了两种呈现内容的方式:通过pander
进行rmarkdown,使用带有RStudio htmltools
的HTML。就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提供。
我尝试了几件事,没有一件令人满意。由于summarytool的打印方法返回的对象属于shinytag
类,所以(可能)理想的解决方案是将所有这些对象合并到一个类shinytag
的列表中,但是我可以将它们组合在一起。我不知道用htmltools
做任何事情。在我看来,挑选列表元素是一个麻烦的方法,因为那里有很多列表嵌套。
我尝试lapply(groupstats, print, method = 'render')
,但后来没有[[n]]
,我$names
出现了。
所以我的问题是:我怎样才能摆脱输出中的[[n]]
?
包源代码
有关包源代码的相关性查询,请参阅summarytool's dev-current branch R/view.R
文件,第78行-116行。
答案 0 :(得分:1)
如果您有list()
项将以HTML格式打印,则可以使用htmltools::tagList()
将它们放在一起,并且不会显示列表的索引。例如,
library(htmltools)
thelist <- list(a, b)
可能会与示例中的[1]
和[2]
一起显示,但
tagList(thelist)
或
tagList(a, b)
只会显示两个项目。