这会有点罗嗦,因为没有适当的上下文,我看不出我怎么能问我的问题。
无需过多介绍细节,在我的包中,我通过使用包装函数来summarytools
处理对象,即. 此函数可以识别通过or创建的对象,并将其组件分派到包的中,并带有与标题和脚注相关的适当参数,依此类推(第一个元素不会收到与第二个或最后一个元素相同的参数)。by()
print.summarytools
view()
view()
by
lapply()
print()
链接到包开发页面:
该包提供了两种呈现内容的方式:rmarkdown throughpander
和 HTML with RStudio's 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')
此示例可作为github 上的 Gist 获得。
编织后的结果:
我尝试了几件事,没有一个令人满意。由于 summarytool 的 print 方法返回的对象是 class shinytag
,(也许)理想的解决方案是将所有这些组合到一个 class 列表中shinytag
,但我不知道有任何方法可以做到这一点htmltools
。在我看来,手工挑选列表元素会带来麻烦,因为那里有很多列表嵌套。
我试过lapply(groupstats, print, method = 'render')
了,但后来[[n]]
我没有出现,而是$names
出现了。
所以我的问题是:我怎样才能摆脱[[n]]
输出中的's?
包源代码 包源代码
相关的chuck,参见summarytool的dev-current分支R/view.R
文件,第~78-116行。