R语言 | 教会你用R制作漂亮的表格 (全网最全的方法)
全网最全的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
但是我可以肯定这个文章肯定会帮到你的
————————————————
版权声明:本文为CSDN博主「yuanzhoulvpi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yuanzhoulvpi/article/details/106772379