【aRsenal-1】用R创建Word和PowerPoint文档

作者简介Introduction

傅兴:个人公众号:Rapp

往期回顾

【R图秀-1】12306列车数据可视化

【R图秀-2】社交网络数据可视化(一)

【R图秀-3】——“全球和平指数”可视化

【R图秀】情人节快乐!

【R图秀-5】将薪比薪

【R图秀-6】地震来了

【R图秀-7】中美俄军事实力对比

(在构思了许久之后,Rapp从今天起正式推出【aRsenal】系列文章。通过【aRsenal】来积累R语言的“武器库”,只有平时多储备技能,关键时刻才能游刃有余)

Microsoft的Office软件在办公软件领域占有绝对的主导地位,几乎每个职场人士都必须掌握Word,Excel和PPT的使用。对于R用户来说,用来处理表格的Excel早就可以弃之不用,但是在撰写报告的时候还是离不开Word和PPT。尽管我们也可以利用kniter和Rmarkdown 等软件包自动生成报告,但它们更擅长生成HTML格式的文档(网页形式),在生成Word和PPT文档的时候功能有限,并不是很好用。

如果你的老板或者客户更喜欢阅读Word和PPT,而你又想利用R语言来自动生成报告,提高工作效率和可重复性,那么今天介绍的ReporteRs包将会是你的最佳选择。

ReporteRs的主页:


http://davidgohel.github.io/ReporteRs/index.html

1. 安装ReporteRs

1.1 查看你的系统中是否已经安装Java(在终端中输入 java -version),如果没有,请安装Java(version>=1.6),具体方法请百度

1.2 在系统中安装cairo(以Ubuntu为例): sudo apt-get install libcairo2-dev

1.3 在RStudio里安装 rJava 软件包: install.packages('rJava')

1.4 在RStudio里安装ReporteRs软件包: install.packages('ReporteRs')

1.5 运行ReporteRs网站首页上的一段示例代码,如果能顺利地生成 my_first_doc.docx 文档就表明安装成功,可以开始正式学习ReporteRs了



2. ReporteRs 的精髓: FlexTable

在Word中添加格式化的表格是最繁琐的工作,我使用过的其他R软件包都不能完美地解决我遇到的所有问题,而ReporteRs的FlexTable让我有种相见恨晚的感觉,我觉得它是ReporteRs的精髓所在。

FlexTable的表格模型如下:


(1)灰色的部分是表头,多行表头在实际工作中经常会遇到,FlexTable 给出了完美的解决方案

(2)深蓝色表示的是表格的数据部分,“合并单元格”或者“对单元格/数字标注颜色”也是经常会遇到的问题,用其他软件包很难实现,而FlexTable也考虑到了

(3)浅蓝色部分是表格的脚注,同样也考虑了多行的情况

由于篇幅有限,下面我只从ReporteRs网站上挑选几个FlexTable的例子,感兴趣的读者可以到网站上查看完整的代码。

手中的数据是这样的:


基本款的FlexTable是这样的:


常用的三线表是这样轻松生成的:


合并单元格终于有了完美的解决方法:


改变某个单元格的背景色也是如此轻松:


上面的例子略显丑陋,在文档中经常出现的还是这样的配色:


轻松添加表头,让表格更加容易阅读:


3. 创建Word文档(.docx)或PPT文档(.pptx)大致可分为以下3个步骤:

(1)创建docx或pptx对象(可以使用 template file)

(2)将R程序的输出(text, table, plots)添加到对象中(对于pptx文档要先在对象中添加一个silde)

(3)将对象写入文件

4. ReporteRs 函数

熟练掌握ReporteRs的函数是创建自动化报告的基础,我建议大家边学习变实践。我将ReporteRs的函数做了归类(见下图),可以方便大家记忆。当遇到函数参数设置的问题时,别忘记查看ReporteRs的文档。


5. 模板的使用
真正要想做到报告的自动化生成,模板的使用是必不可少的。只要将文档的静态内容和格式定义好,写成一个模板,ReporteRs就可以把R程序产生的新的结果按照文档要求的格式插入到模板的指定位置中。具体方法如下:

(1)在Word文档中的某个位置插入书签(bookmarks),书签就相当与文档中的一个有名称的位置。注意,这部分操作是在Word软件中进行的,具体方法可以百度,或者查看下面的链接: http://www.wikihow.com/Add-a-Bookmark-in-Microsoft-Word

(2)只要把书签名赋给bookmark参数,addFlexTable, addPlot, addParagraph和addImage函数就可以将文档中的书签替换成相应的图表或文字。
ReporteRs的介绍就到这里,赶紧去练习吧!

(本文同步发布在简书上,点击“阅读原文”可以查看)





 往期精彩内容整理合集 

2017年R语言发展报告(国内)

R语言中文社区历史文章整理(作者篇)

R语言中文社区历史文章整理(类型篇)


公众号后台回复关键字即可学习

回复 R                  R语言快速入门及数据挖掘 
回复 Kaggle案例  Kaggle十大案例精讲(连载中)
回复 文本挖掘      手把手教你做文本挖掘
回复 可视化          R语言可视化在商务场景中的应用 
回复 大数据         大数据系列免费视频教程 
回复 量化投资      张丹教你如何用R语言量化投资 
回复 用户画像      京东大数据,揭秘用户画像
回复 数据挖掘     常用数据挖掘算法原理解释与应用
回复 机器学习     人工智能系列之机器学习与实践
回复 爬虫            R语言爬虫实战案例分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值