【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语言爬虫实战案例分享

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值