如何用R来定制个性化PPT
ReporteRs包可以创建word,ppt,html文档。它可以格式化R的输出:如可编辑的矢量图,复杂的表格报告功能,企业模板文档的重用(.docx和.pptx)。它是一个很好的自动化报告工具,并且不需要你安装微软的任何产品。本文演示的是如何用它来制作PPT文档。
入门
创建一个pptx对象
通过pptx函数创建的一个R对象可以表示一个PPT文档。它包含两个参数:标题和模板文件。如果未指定,模板文件在包目录下是一个空文档。
每当创建一个pptx对象的时候,你就可以使用一个模板文件。这个文件是从内存中复制过来的,并且副本可以通过R输出为一个文档。模板文件提供了可用的格式和幻灯片板式。
将R的输出结果发送到一个对象
接下来,创建pptx文件的组成部分。
在将R的输出发送到一个文档(或幻灯片)之前,必须添加一个幻灯片。通过函数addSlide可以实现。
在添加幻灯片的时候,需要选定一个布局。然后添加文本,表格,图形和其它组成部分。
将对象写入到一个文件中
最后,使用函数writeDoc将对象写入到后缀为.pptx的文件中。
示例
下面我们通过一个带有注解的R脚本来做演示:
模板,版式和样式
pptx函数可以通过"pptx"模板文件创建一个文档。
如果没有提供,可以使用一个空文档(在包目录下的templates文件中可以找到)
ReporteRs使用PPT文件作为模板。这个模板是一个最原始的PPT文档,所有的幻灯片布局,外形(占位符)和样式来自于:
模板中可用的幻灯片版式模板中自定义好的设计,模板格式和外形(模板中的占位符)
ppt模板的内容不会被删除,以便在现有的演示文稿中添加内容,而不用再复制粘贴。
如果需要除了PPT内置的幻灯片母版版式,可以在你的PPT演示文稿中添加版式并做自定义。要添加自己的版式,只需在PPT中按如下操作即可:
1.切换到幻灯片母版视图
2.插入版式
3.插入你想要增加到新版式中的占位符。根据需要包含的内容移动并调整它们的大小。
4.可以对新的占位符做些设置(如:修改背景颜色,字体等)
5.保存并关闭模板
6.通过pptx函数中参数template所指定的模板文件名创建一个pptx对象。
添加内容
添加幻灯片
利用addSlide函数可以在pptx对象中添加一个幻灯片。可用的形状数根据所选的版式通过R输出来填充。例如,版式"Title and Content"只能接收一个R输出,"Two Content"可以接收两个R输出。
如果你需要一个新的版式,在PPT中创建它。
当添加一个R输出的时候,如果没有指定位置和大小,R输出会采用被定义的模板版式中的位置和尺寸。如果你不喜欢模板中的模型位置属性,可以强制改变大小和位置。
将R的输出结果发送到幻灯片
接下来,创建幻灯片的组成部分。
在幻灯片中添加文本,表格,图形和其它组成部分。可用的函数见如下函数列表。
如果现在的幻灯片没有剩余空间或者是你想添加其它内容,可以强制设定模型的大小和位置。具体可参考几个关键的函数和参数
函数列表
下面这些函数只能用于输出格式为pptx的文档:
添加标题:addTitle
添加表格:addFlexTable-见FlexTable和addFlexTable
添加图形:见addPlot
添加外部图像:见addImage
添加文本段落:addPagraph
添加语法高亮的R代码:见addRScript
添加幻灯片:addSlide(见"几个关键的函数和参数")
将pptx对象写入PPT文档:见writeDoc
添加日期:addDate(见下述"几个特殊函数")
添加脚注:addFooter(见下述"几个特殊函数")
添加页数:addPageNumber(见下述"几个特殊函数")
几个关键的函数的参数
addSlide函数
函数addSlide可以添加一个幻灯片到pptx对象。参数slide.layout指定新建幻灯片的版式设计。
slide.layouts函数
模板中包含了可用的版式。幻灯片的版式概念在ReporteRs中非常重要。
内容取决于所选择的版式。当添加的幻灯片版式为"Title and Content"时,幻灯片只包含两个部分:标题和内容。
外形(或占位符)的大部分格式都已经设置好了:图形的大小由版式中的外形尺寸指定好了,默认字体和段落样式也由外形的属性值指定。
slide.layouts返回幻灯片版式名称。用addSlide函数添加一个幻灯片的时候可能需要核对下有哪些版式可用。
检查幻灯片版式
通过slide.layouts函数的可选参数layout获取版式的设计图。
这里,幻灯片可用接收如下形状:标题,四个内容(图形,表格,段落),日期和幻灯片数。
设置大小和位置
宽度,高度和输出位置在PPT模板给定的时候就通过外形属性值设定好了。当我们在幻灯片中添加内容的时候,ReporteRs会在当前幻灯片中读取下一个可用外形的属性值。你可以指定一些特定输出(表格,文本,图形和外部图像)的外形位置和尺寸 如果没有设定offx,offy,width,heigh这些参数。位置的尺寸会通过幻灯片的下一个可用形状中的width和heigh默认设定好。 如果指定这些参数,可以得到新的外形位置和尺寸。这样做可以在幻灯片没有更多剩余的空间时添加新的内容。
以下R脚本可以生成
几个特殊函数
日期
利用addDate函数可以在幻灯片中增加日期。它的外形通过模板文档中的日期外形属性值设定。
页数
利用函数addPageNumber可以在幻灯片中添加幻灯片的页数。同样,它的外形通过模板文档中的页数外形属性值设定。
页脚
函数addFooter可以实现在幻灯片的页脚处添加注解。同样,通过模板文件默认设定。
副标题
函数addSubtitle实现在幻灯片中添加副标题。外形由模板默认设定。
副标题的外形只存在类型为"Title Slide"的幻灯片。
更换幻灯片
通过设定addSlide中的参数bookmark可以实现幻灯片的替换。
注:在本文中遇到的坑跟大家分享下。
1.前面已经提到创建一个模板有两种方法。方法一,mydoc = pptx()通过调用包目录下templates文件夹中的EMPTY_DOC.pptx作为模板。方法二,自己在当前工作目录下新建一个ppt文档作为模板。如:我在工作目录下新建了一个名为"PP_example.pptx"文档,通过mydoc = pptx( title = 'title', template = 'pp_example.pptx' )调用这个模板。这两种方法会有些区别:i)版式
采用方法一
采用方法二
所以,如果用的是方法二调用的模板,在做幻灯片替换的时候做下中文设置即可:mydoc = addSlide( mydoc, slide.layout = '标题和内容', bookmark = 3 )。但这里有一个问题就是无法插入图形,出现如下错误(如果有小伙伴解决了这个问题欢迎在下面评论中留言):
但文本,表格等可以插入。但通过方法一得到一个ppt文档,再把它作为模板后就可以插入图形了。
2.在做幻灯片替换的过程中,将pptx对象writeDoc()到ppt文档的时候ppt需先关闭。
3.用方法二作为模板的时候,需先在工作目录下新建一个ppt文档,否则提示文件不存在。
完整案例
下面的代码展示了可以用在pptx对象上的一些最有用的函数。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
数据分析在当今信息时代发挥着重要作用。单因素方差分析(One-Way ANOVA)是一种关键的统计方法,用于比较三个或更多独立样本组 ...
2025-04-25CDA持证人简介: 居瑜 ,CDA一级持证人国企财务经理,13年财务管理运营经验,在数据分析就业和实践经验方面有着丰富的积累和经 ...
2025-04-25在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-24以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《刘静:10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda ...
2025-04-23大咖简介: 刘凯,CDA大咖汇特邀讲师,DAMA中国分会理事,香港金管局特聘数据管理专家,拥有丰富的行业经验。本文将从数据要素 ...
2025-04-22CDA持证人简介 刘伟,美国 NAU 大学计算机信息技术硕士, CDA数据分析师三级持证人,现任职于江苏宝应农商银行数据治理岗。 学 ...
2025-04-21持证人简介:贺渲雯 ,CDA 数据分析师一级持证人,互联网行业数据分析师 今天我将为大家带来一个关于用户私域用户质量数据分析 ...
2025-04-18一、CDA持证人介绍 在数字化浪潮席卷商业领域的当下,数据分析已成为企业发展的关键驱动力。为助力大家深入了解数据分析在电商行 ...
2025-04-17CDA持证人简介:居瑜 ,CDA一级持证人,国企财务经理,13年财务管理运营经验,在数据分析实践方面积累了丰富的行业经验。 一、 ...
2025-04-16持证人简介: CDA持证人刘凌峰,CDA L1持证人,微软认证讲师(MCT)金山办公最有价值专家(KVP),工信部高级项目管理师,拥有 ...
2025-04-15持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。在实际生活中,我们可能会 ...
2025-04-14在 Python 编程学习与实践中,Anaconda 是一款极为重要的工具。它作为一个开源的 Python 发行版本,集成了众多常用的科学计算库 ...
2025-04-14随着大数据时代的深入发展,数据运营成为企业不可或缺的岗位之一。这个职位的核心是通过收集、整理和分析数据,帮助企业做出科 ...
2025-04-11持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。 本次分享我将以教培行业为 ...
2025-04-11近日《2025中国城市长租市场发展蓝皮书》(下称《蓝皮书》)正式发布。《蓝皮书》指出,当前我国城市住房正经历从“增量扩张”向 ...
2025-04-10在数字化时代的浪潮中,数据已经成为企业决策和运营的核心。每一位客户,每一次交易,都承载着丰富的信息和价值。 如何在海量客 ...
2025-04-09数据是数字化的基础。随着工业4.0的推进,企业生产运作过程中的在线数据变得更加丰富;而互联网、新零售等C端应用的丰富多彩,产 ...
2025-04-094月7日,美国关税政策对全球金融市场的冲击仍在肆虐,周一亚市早盘,美股股指、原油期货、加密货币、贵金属等资产齐齐重挫,市场 ...
2025-04-08背景 3月26日,科技圈迎来一则重磅消息,苹果公司宣布向浙江大学捐赠 3000 万元人民币,用于支持编程教育。 这一举措并非偶然, ...
2025-04-07在当今数据驱动的时代,数据分析能力备受青睐,数据分析能力频繁出现在岗位需求的描述中,不分岗位的任职要求中,会特意标出“熟 ...
2025-04-03