
如何用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對象中添加一個幻燈片??捎玫男螤顢蹈鶕x的版式通過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函數
模板中包含了可用的版式?;脽羝陌媸礁拍钤赗eporteRs中非常重要。
內容取決于所選擇的版式。當添加的幻燈片版式為"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
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25