第 13 章 交互式数据表格

Greg Lin 开发的 reactable 包覆盖测试达到惊人的 99%,它基于 JavaScript 库 react-table, 是 react 框架的衍生品,Nick Raienko 整理了一份超棒的 react 模块合集 也许机智如你,可以引入更多优秀的 react 模块到 R 语言社区。reactablefmtr 提供一些函数简化 reactable 定制表格的复杂性

谢益辉开发的 DT 包覆盖测试 31%, 它基于 DataTables 库,是 jQuery 框架的衍生品。益辉评价 reactable 在多个方面优于 DT,比如行分组和聚合,嵌入 HTML widgets,甚至说要是 reactable 存在于 DT 之前,他就不会新开发 DT 这个 R 包了,不过这是后话了25

Richard Iannone 开发的 gt 包覆盖测试 78%,类似 ggplot2 的设计哲学,试图打造制作表格的语法,相比于 reactableDT, 它不依赖于 JavaScript 库,更加轻量,一般来讲,持续维护更新重 JS 库依赖的 R 包比较累人,JS 库可能会不断重构,进而变动 API。

朱昊开发的 kableExtra 大大扩展了 knitr 包的 kable() 函数的功能,虽没有覆盖测试,但中英文文档特别详细,见官网 https://haozhu233.github.io/kableExtra/

目前,Greg Lin、 谢益辉和 Richard Iannone 都是 RStudio 公司雇员,他们背靠开源组织和大公司,开发的这些 R 包的生命力都比较强。 gtkableExtra 摆脱了 JavaScript 库的依赖,网页形式的表格可以嵌入到邮件内容中,这是一个不太引人注意的优势。kableExtra 还支持高度自定义的 LaTeX 输出,详见案例 https://github.com/XiangyunHuang/bookdown-kableExtragt 包据说未来也会支持,拭目以待吧,也许在成书之日能看到!

此外,还有任坤开发的 formattable 和 David Gohel 开发的 flextable 包等,一份综合介绍见博文 How to Make Beautiful Tables in R

rtables 处于原型开发的阶段,针对复杂表格,有比较好的设计。tablesgg 使用 ggplot2 将表格渲染成图片。