用R创建Word和PowerPoint文档--转载
https://www.jianshu.com/p/7df62865c3ed
Rapp --简书
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
- 安装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了 my_first_doc.png my_first_doc.png
- ReporteRs 的精髓: FlexTable 
 在Word中添加格式化的表格是最繁琐的工作,我使用过的其他R软件包都不能完美地解决我遇到的所有问题,而ReporteRs的FlexTable让我有种相见恨晚的感觉,我觉得它是ReporteRs的精髓所在。
 FlexTable的表格模型如下: table_model.png table_model.png- (1)灰色的部分是表头,多行表头在实际工作中经常会遇到,FlexTable 给出了完美的解决方案 
 (2)深蓝色表示的是表格的数据部分,“合并单元格”或者“对单元格/数字标注颜色”也是经常会遇到的问题,用其他软件包很难实现,而FlexTable也考虑到了
 (3)浅蓝色部分是表格的脚注,同样也考虑了多行的情况
 由于篇幅有限,下面我只从ReporteRs网站上挑选几个FlexTable的例子,感兴趣的读者可以到网站上查看完整的代码。
 手中的数据是这样的: flextable_1.png flextable_1.png- 基本款的FlexTable是这样的:  flextable_2.png flextable_2.png- 常用的三线表是这样轻松生成的:  flextable_3.png flextable_3.png- 合并单元格终于有了完美的解决方法:  flextable_4.png flextable_4.png- 改变某个单元格的背景色也是如此轻松:  flextable_5.png flextable_5.png- 上面的例子略显丑陋,在文档中经常出现的还是这样的配色:  flextable_6.png flextable_6.png- 轻松添加表头,让表格更加容易阅读:  flextable_7.png flextable_7.png
- 创建Word文档(.docx)或PPT文档(.pptx)大致可分为以下3个步骤: 
 (1)创建docx或pptx对象(可以使用 template file)
 (2)将R程序的输出(text, table, plots)添加到对象中(对于pptx文档要先在对象中添加一个silde)
 (3)将对象写入文件
- ReporteRs 函数 
 熟练掌握ReporteRs的函数是创建自动化报告的基础,我建议大家边学习变实践。我将ReporteRs的函数做了归类(见下图),可以方便大家记忆。当遇到函数参数设置的问题时,别忘记查看ReporteRs的文档。 functions.png functions.png
- 模板的使用 
 真正要想做到报告的自动化生成,模板的使用是必不可少的。只要将文档的静态内容和格式定义好,写成一个模板,ReporteRs就可以把R程序产生的新的结果按照文档要求的格式插入到模板的指定位置中。具体方法如下:
 (1)在Word文档中的某个位置插入书签(bookmarks),书签就相当与文档中的一个有名称的位置。注意,这部分操作是在Word软件中进行的,具体方法可以百度,或者查看下面的链接: http://www.wikihow.com/Add-a-Bookmark-in-Microsoft-Word
 (2)只要把书签名赋给bookmark参数,addFlexTable, addPlot, addParagraph和addImage函数就可以将文档中的书签替换成相应的图表或文字。
作者:Rapp
链接:https://www.jianshu.com/p/7df62865c3ed
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
用R创建Word和PowerPoint文档--转载的更多相关文章
- C#/VB.NET 向PowerPoint文档插入视频
		如今,Microsoft Office PowerPoint在我们日常生活中的应用已经很广泛了,利用Microsoft Office PowerPoint不仅可以创建演示文稿,还可以在互联网上召开面对 ... 
- 如何把PPT变小|PowerPoint文档减肥的几种方法
		使用powerpoint制作幻灯片的过程中,经常出现过这样的情况,制作幻灯片时,出于内容的需要和美观的需要,添加了许多图片和Excel表或者OLE对象,成倍增大了文档的体积,结果导致: 1.页面编辑人 ... 
- C# 调用word进程操作文档关闭进程
		C# 调用word进程操作文档关闭进程 作者:Jesai 时间:2018-02-12 20:36:23 前言: office办公软件作为现在主流的一款办公软件,在我们的日常生活和日常工作里面几乎每天都 ... 
- 基于DevExpress实现对PDF、Word、Excel文档的预览及操作处理
		http://www.cnblogs.com/wuhuacong/p/4175266.html 在一般的管理系统模块里面,越来越多的设计到一些常用文档的上传保存操作,其中如PDF.Word.Excel ... 
- Aspose.Words操作word生成PDF文档
		Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ... 
- (转)创建和查看Javadoc文档
		原地址:http://jinnaxu-tju-edu-cn.iteye.com/blog/667177 Javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类.方法.成员等注释形成一个和源代 ... 
- 1.2.3 创建Cocos2D-iPhone的帮助文档
		http://book.51cto.com/art/201303/383957.htm <Cocos2D权威指南>第1章开始前的准备工作,本章我们将介绍什么是Cocos2D以及有关Coco ... 
- Win7如何自定义鼠标右键菜单 添加新建PowerPoint文档
		鼠标右键添加新建PowerPoint文档.reg Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.ppt] "Content ... 
- swagger2 导出离线Word/PDF/HTML文档
		swagger2离线导出Word/PDF/HTML文档 1.前言 通过前面的两篇博客 我们已经介绍了如何使用spring boot整合swagger2 生成在线的API文档. 但是某些情况下,我们需要 ... 
随机推荐
- Google自动广告,将广告代码放置在 HTML 中的什么位置?
			Google自动广告,将广告代码放置在 HTML 中的什么位置? 为自动广告生成广告代码后,您需要将此代码放置在要展示广告的每个网页中.您应将广告代码放置在网页的 <head> 标记(或正 ... 
- 在CentOS 6.X中安装中文字体
			1.从Windows中 拷贝或者网络上下载你想要安装的字体文件(*.ttf文件) 2.新建字体目录 #mkdir /usr/share/fonts/ 3.修改字体文件的权限,使root用户以外的用户也 ... 
- GoldenGate 12.3 MA架构介绍系列(1) - 安装
			GoldenGate 12.3微服务架构与传统架构的区别可参考: http://www.cnblogs.com/margiex/p/7439574.html 下载地址:http://www.oracl ... 
- 怎样从外网访问内网Jupyter Notebook?
			本地安装了一个Jupyter Notebook,只能在局域网内访问,怎样从外网也能访问到本地的Jupyter Notebook呢?本文将介绍具体的实现步骤. 准备工作 安装并启动Jupyter Not ... 
- Kattis之旅——Prime Path
			The ministers of the cabinet were quite upset by the message from the Chief of Security stating that ... 
- css overflow和float
			float:使元素向左或向右移动(不能上下移动),直到它的外边缘碰到包含框或另一个浮动框的边框为止,浮动元素之前的元素将不会受到影响,之后的元素将围绕它. float之后的元素脱离文档流. 默认为no ... 
- bzoj4566 / P3181 [HAOI2016]找相同字符
			P3181 [HAOI2016]找相同字符 后缀自动机 (正解应是广义后缀自动机) 并不会广义后缀自动机. 然鹅可以用普通的后缀自动机. 我们先引入一个问题:算出从一个串内取任意两个不重合子串完全 ... 
- Hashtable与HashMap的区别
			HashMap不是线程安全的,HashTable是线程安全. HashMap允许空(null)的键和值(key),HashTable则不允许. HashMap性能优于Hashtable. 
- JS传值中文乱码解决方案
			JS传值中文乱码解决方案 一.相关知识 1,Java相关类: (1)java.net.URLDecoder类 HTML格式解码的实用工具类,有一个静态方法:public static String ... 
- 强大的shell(一键redis,mysql,php,openresty,jdk)
			前序 集成了一键安装离线包redis,mysql,php,openresty,jdk,系统优化等脚本, 一个shell搞掂. JDK:自动识别本地安装包,自动解压,部署,配置环境变量. REDIS:自 ... 
 
			
		








