
如何用R來定制個性化PPT
ReporteRs包可以創(chuàng)建word,ppt,html文檔。它可以格式化R的輸出:如可編輯的矢量圖,復雜的表格報告功能,企業(yè)模板文檔的重用(.docx和.pptx)。它是一個很好的自動化報告工具,并且不需要你安裝微軟的任何產(chǎn)品。本文演示的是如何用它來制作PPT文檔。
入門
創(chuàng)建一個pptx對象
通過pptx函數(shù)創(chuàng)建的一個R對象可以表示一個PPT文檔。它包含兩個參數(shù):標題和模板文件。如果未指定,模板文件在包目錄下是一個空文檔。
每當創(chuàng)建一個pptx對象的時候,你就可以使用一個模板文件。這個文件是從內(nèi)存中復制過來的,并且副本可以通過R輸出為一個文檔。模板文件提供了可用的格式和幻燈片板式。
將R的輸出結(jié)果發(fā)送到一個對象
接下來,創(chuàng)建pptx文件的組成部分。
在將R的輸出發(fā)送到一個文檔(或幻燈片)之前,必須添加一個幻燈片。通過函數(shù)addSlide可以實現(xiàn)。
在添加幻燈片的時候,需要選定一個布局。然后添加文本,表格,圖形和其它組成部分。
將對象寫入到一個文件中
最后,使用函數(shù)writeDoc將對象寫入到后綴為.pptx的文件中。
示例
下面我們通過一個帶有注解的R腳本來做演示:
模板,版式和樣式
pptx函數(shù)可以通過"pptx"模板文件創(chuàng)建一個文檔。
如果沒有提供,可以使用一個空文檔(在包目錄下的templates文件中可以找到)
ReporteRs使用PPT文件作為模板。這個模板是一個最原始的PPT文檔,所有的幻燈片布局,外形(占位符)和樣式來自于:
模板中可用的幻燈片版式模板中自定義好的設(shè)計,模板格式和外形(模板中的占位符)
ppt模板的內(nèi)容不會被刪除,以便在現(xiàn)有的演示文稿中添加內(nèi)容,而不用再復制粘貼。
如果需要除了PPT內(nèi)置的幻燈片母版版式,可以在你的PPT演示文稿中添加版式并做自定義。要添加自己的版式,只需在PPT中按如下操作即可:
1.切換到幻燈片母版視圖
2.插入版式
3.插入你想要增加到新版式中的占位符。根據(jù)需要包含的內(nèi)容移動并調(diào)整它們的大小。
4.可以對新的占位符做些設(shè)置(如:修改背景顏色,字體等)
5.保存并關(guān)閉模板
6.通過pptx函數(shù)中參數(shù)template所指定的模板文件名創(chuàng)建一個pptx對象。
添加內(nèi)容
添加幻燈片
利用addSlide函數(shù)可以在pptx對象中添加一個幻燈片??捎玫男螤顢?shù)根據(jù)所選的版式通過R輸出來填充。例如,版式"Title and Content"只能接收一個R輸出,"Two Content"可以接收兩個R輸出。
如果你需要一個新的版式,在PPT中創(chuàng)建它。
當添加一個R輸出的時候,如果沒有指定位置和大小,R輸出會采用被定義的模板版式中的位置和尺寸。如果你不喜歡模板中的模型位置屬性,可以強制改變大小和位置。
將R的輸出結(jié)果發(fā)送到幻燈片
接下來,創(chuàng)建幻燈片的組成部分。
在幻燈片中添加文本,表格,圖形和其它組成部分。可用的函數(shù)見如下函數(shù)列表。
如果現(xiàn)在的幻燈片沒有剩余空間或者是你想添加其它內(nèi)容,可以強制設(shè)定模型的大小和位置。具體可參考幾個關(guān)鍵的函數(shù)和參數(shù)
函數(shù)列表
下面這些函數(shù)只能用于輸出格式為pptx的文檔:
添加標題:addTitle
添加表格:addFlexTable-見FlexTable和addFlexTable
添加圖形:見addPlot
添加外部圖像:見addImage
添加文本段落:addPagraph
添加語法高亮的R代碼:見addRScript
添加幻燈片:addSlide(見"幾個關(guān)鍵的函數(shù)和參數(shù)")
將pptx對象寫入PPT文檔:見writeDoc
添加日期:addDate(見下述"幾個特殊函數(shù)")
添加腳注:addFooter(見下述"幾個特殊函數(shù)")
添加頁數(shù):addPageNumber(見下述"幾個特殊函數(shù)")
幾個關(guān)鍵的函數(shù)的參數(shù)
addSlide函數(shù)
函數(shù)addSlide可以添加一個幻燈片到pptx對象。參數(shù)slide.layout指定新建幻燈片的版式設(shè)計。
slide.layouts函數(shù)
模板中包含了可用的版式?;脽羝陌媸礁拍钤赗eporteRs中非常重要。
內(nèi)容取決于所選擇的版式。當添加的幻燈片版式為"Title and Content"時,幻燈片只包含兩個部分:標題和內(nèi)容。
外形(或占位符)的大部分格式都已經(jīng)設(shè)置好了:圖形的大小由版式中的外形尺寸指定好了,默認字體和段落樣式也由外形的屬性值指定。
slide.layouts返回幻燈片版式名稱。用addSlide函數(shù)添加一個幻燈片的時候可能需要核對下有哪些版式可用。
檢查幻燈片版式
通過slide.layouts函數(shù)的可選參數(shù)layout獲取版式的設(shè)計圖。
這里,幻燈片可用接收如下形狀:標題,四個內(nèi)容(圖形,表格,段落),日期和幻燈片數(shù)。
設(shè)置大小和位置
寬度,高度和輸出位置在PPT模板給定的時候就通過外形屬性值設(shè)定好了。當我們在幻燈片中添加內(nèi)容的時候,ReporteRs會在當前幻燈片中讀取下一個可用外形的屬性值。你可以指定一些特定輸出(表格,文本,圖形和外部圖像)的外形位置和尺寸 如果沒有設(shè)定offx,offy,width,heigh這些參數(shù)。位置的尺寸會通過幻燈片的下一個可用形狀中的width和heigh默認設(shè)定好。 如果指定這些參數(shù),可以得到新的外形位置和尺寸。這樣做可以在幻燈片沒有更多剩余的空間時添加新的內(nèi)容。
以下R腳本可以生成
幾個特殊函數(shù)
日期
利用addDate函數(shù)可以在幻燈片中增加日期。它的外形通過模板文檔中的日期外形屬性值設(shè)定。
頁數(shù)
利用函數(shù)addPageNumber可以在幻燈片中添加幻燈片的頁數(shù)。同樣,它的外形通過模板文檔中的頁數(shù)外形屬性值設(shè)定。
頁腳
函數(shù)addFooter可以實現(xiàn)在幻燈片的頁腳處添加注解。同樣,通過模板文件默認設(shè)定。
副標題
函數(shù)addSubtitle實現(xiàn)在幻燈片中添加副標題。外形由模板默認設(shè)定。
副標題的外形只存在類型為"Title Slide"的幻燈片。
更換幻燈片
通過設(shè)定addSlide中的參數(shù)bookmark可以實現(xiàn)幻燈片的替換。
注:在本文中遇到的坑跟大家分享下。
1.前面已經(jīng)提到創(chuàng)建一個模板有兩種方法。方法一,mydoc = pptx()通過調(diào)用包目錄下templates文件夾中的EMPTY_DOC.pptx作為模板。方法二,自己在當前工作目錄下新建一個ppt文檔作為模板。如:我在工作目錄下新建了一個名為"PP_example.pptx"文檔,通過mydoc = pptx( title = 'title', template = 'pp_example.pptx' )調(diào)用這個模板。這兩種方法會有些區(qū)別:i)版式
采用方法一
采用方法二
所以,如果用的是方法二調(diào)用的模板,在做幻燈片替換的時候做下中文設(shè)置即可:mydoc = addSlide( mydoc, slide.layout = '標題和內(nèi)容', bookmark = 3 )。但這里有一個問題就是無法插入圖形,出現(xiàn)如下錯誤(如果有小伙伴解決了這個問題歡迎在下面評論中留言):
但文本,表格等可以插入。但通過方法一得到一個ppt文檔,再把它作為模板后就可以插入圖形了。
2.在做幻燈片替換的過程中,將pptx對象writeDoc()到ppt文檔的時候ppt需先關(guān)閉。
3.用方法二作為模板的時候,需先在工作目錄下新建一個ppt文檔,否則提示文件不存在。
完整案例
下面的代碼展示了可以用在pptx對象上的一些最有用的函數(shù)。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03