使用R制作漂亮的表格

本文原文来自:https://rfortherestofus.com/2019/11/how-to-make-beautiful-tables-in-r/

本文为原文的翻译,如果有什么错误的地方,欢迎各位提出。

如果你没有有效的传递出你的分析结果,这不是你的数据分析能力的原因。大部分报告中,图形、表格、叙事性文字作为传递结果的载体。清晰的写作是另外一个场所的主题,数据可视化是R的一大主题。这个可以在kieran Healy的书中可以看到(https://socviz.co/)或者Claus Wike书中看到(https://serialmentor.com/dataviz/)。但是对于表来说,R语言用户很容易通过各种方式来制作出漂亮的表格传递分析结果。下面就是几个制作图表的方法。

在Rmarkdown里面制作图表

如果你使用Rmarkdown,你看到下面的图片你肯定兴趣全无:

因为表格看起来实在是太丑了,想要漂亮的输出,你真应该看看谢益辉的文章,只需要在Rmarkdown前面加上一串东西就能控制你的表格的格式。https://bookdown.org/yihui/rmarkdown/html-document.html#data-frame-printing

在谢益辉文章里面,介绍了很多控制参数:

但是最重要的产生估计就是paged这个参数。这个参数可以将表格分页,尤其是当你的表格特别长的时候,但是又希望你的表格全部被别人看到。

上面是Rmarkdown默认的,还有我很喜欢的包

很多包都提供函数产生非常漂亮的表,这里一一介绍我喜欢使用的包,因为这些包输出的表格非常漂亮而且有效的展示数据。

 

gt 

gt包实在是又简单又强大,重点是满足日常显示表格的需求,这个设计的目的如下:

修改输出位置(这句话翻译怪怪的)

对文本和背景的格式进行修改

增加标题、副标题、注释等

这个包处理表的风格就像是ggplot2处理图形一样的风格(图形理论语法?)导致gt包宜上手,而且灵活。

学习资源:https://gt.rstudio.com/

 

kable + kableExtra

kableExtra是基于kable包的。这个作者说,这个包更强大:

The goal of kableExtra is to help you build common complex tables and manipulate table styles. It imports the pipe %>% symbol from magrittr and verbalize all the functions, so basically you can add “layers” to a kable output in a way that is similar with ggplot2 and plotly.

Sharla Gelfand 使用了kableExtra包做了一个报告,非常好看:http://www.cno.org/globalassets/2-howweprotectthepublic/statistical-reports/nursing-registration-exams-report-2018.pdf

https://twitter.com/sharlagelfand/status/1192674485792641024

想学习这个包: https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html

 

formattable

Kun Ren 的formattable包是为了向量和数据狂展示更加好看而设计的。更加的丰富,更加的灵活、以及更有效的传递信息。

这个包最有特色的是添加颜色、背景底纹、条形图等其他特色,使得表格更加生动而不是单纯的一个文本块。

如果想要学习案例,可以看看Laura Ellis的案例:https://www.littlemissdata.com/blog/prettytables

想要学习更多:https://renkun-ken.github.io/formattable/

 

DT

DT包最吸引人的地方就是可以筛选、排序数据,用户可以对数据切片、滚动,怎么方便怎么来。

想要学到更多: https://rstudio.github.io/DT/

 

reactable 

我之前都不知道这个包,直到看到Mara Averick 在推特上说了这个包我才知道,虽然我没用过,但是从这个包的文档上看,感觉还不错。就像是DT包一样,可以排序、筛选数据。但是比DT包在视觉上又更加具有吸引力。可以看看这个例子:https://projects.fivethirtyeight.com/2019-womens-world-cup-predictions/

想要学到更多:https://glin.github.io/reactable/index.html

 

flextable

这个包是被设计输出HTML格式的表格的。如果你希望发布到word,你最好使用flexable制作表格。这个包可以嵌入到HTML和pdf里面。是由David Gohel设计的,这个包提供一系列简明的语法来调整表的内容和格式。

想要学到更多: https://davidgohel.github.io/flextable/

 

其他人推荐的包:

上面表都是我自己使用的,但是在推特上也有别人推荐一些其他的包,https://twitter.com/dgkeyes/status/1171169865811447809

huxtable

输出适用于Latex和HTML格式的表,更加友好的、现代的界面,功能包括对文本样式、数值格式、背景颜色,表格边界,单元可的合并和填充、分割等。表格可以使用标准的R或者dplyr来处理。

 

想要学到更多: https://hughjonesd.github.io/huxtable/

 

rhandsontable

这个包像DT包一样,提供更加强大的功能,比如数据验证、排序、分组、公式支持或者列排序等。用起来的感觉就像是使用Excel一样。对于习惯了Microsoft的excel用户来说,这可能会有所帮助,用户甚至可以使用这个表来修改数据。

想要了解更多: https://jrowen.github.io/rhandsontable/

 

pixiedust

这个梦幻般的名字的包是用来为一些模型输出而设计的。(模型结果是使用broom包处理过的)。使用这个包有三个步骤

第一步:将你的模型跑一遍。比如线性模型

第二步:使用broom包的函数将模型的结果转换一下。

第三步:使用pixiedust包去改善结果的输出(通常使用sprinkle_系列的函数)。将统计信息转换成适合发行出版或者可提交给客户的格式。

如果你希望确保别人可以看得懂你的复杂的统计分析结果,这个包简直是非常适合你的

 

想要看到更多: https://github.com/nutterb/pixiedust

 

实际上还有更多的包没有被列出来,可以在Rstudio这个列表里面看到: https://rmarkdown.rstudio.com/lesson-7.html   

但是我可以肯定这个文章肯定会帮到你的

 

 

想要看到更多的数据可视化东西,欢迎关注微信公众号:pypi

 

 

  • 23
    点赞
  • 149
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanzhoulvpi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值