第一步:RMarkdown生成可重複性報告
RMarkdown是基於Rstudio的,在Rstudio -> file -> R Markdown對於生成報告形式有三種:HTML(網頁)、PDF、WORD
注意:原生態情況下,Rmarkdown導出成PDF文件的內容是不支持中文的。但是一般來說報告都是以PDF文件較為正式,那麼可以安裝TinyTex和rticles包(設置參數documentclass: ctexart、output: rticles::ctex),即可正常輸出中文版的PDF,若英文內容的PDF不需要這些包直接使用就可以了。當安裝好這兩個包後就可以進行以下步驟了。步驟二:
註:該模板是有bug的,如果你直接運行這個模板是會報錯的。
刪除其中一個documentclass參數,還是會出現問題:報錯提示缺少ctex模板。
內容是簡單一點,可以根據自己的業務自行調整內容,這裡僅是為了掩飾。那麼對於數據統計報告模板就算完成。這一步也是非常重要,因為關乎整份報告,需要注意的是數據來源最好是資料庫,因為要保證數據的實時性。R如何連接資料庫不會的可以百度,同時注意查詢取數(一個月的數據)以及後面的統計分析。
第二步:通過mailR包發送郵件
安裝mailR包時會有依賴包,其中有rJava包需要注意,若出現報錯的話,檢查該包和你系統版本是不是一致的和是否設置了環境路徑。若沒有報錯說明mailR包加載成功,可以使用該包發郵件了!這裡用QQ郵箱作為例子吧!一般人用的比較多,若用mailR發送QQ郵件,需要開通QQ郵箱的SMTP服務,需要手機驗證生成授權碼,有一些郵件可能不需要吧。在QQ郵箱設置處,找到POP3/SMTP服務開啟設置處。
由於QQ郵箱SMTP服務中,第三方客戶端登陸QQ郵箱均已授權碼作為密碼登陸(非原始密碼),因此需要通過手機驗證生成授權嗎。此外還可以選擇通過SSL加密的方式發送郵件。
在開通了SMTP服務,並且獲取了授權碼後,就可以實現第三方客戶端接發QQ郵件了。
library(mailR) library(rmarkdown)2、通過rmarkdown包中的render函數編譯製作好的報告模板
setwd("C:/Users/yuan/Documents") data_pdf <- render("統計數據分析.Rmd", pdf_document(latex_engine = "xelatex"))註:render函數中的pdf_document中的Latex_engine參數需與報告模板中的參數是一致的。
我們可以通過檢查文件的更新時間判斷文件是否已更新。
path='C:/Users/yuan/Documents/統計數據分析.pdf'pdf_infor <- file.info(path) size isdir mode mtime ctime atime exeC:/Users/yuan/Documents/統計數據分析.pdf 38366 FALSE 666 2020-09-14 15:27:23 2020-09-14 15:17:46 2020-09-14 15:27:23 noTF <- FALSEif(difftime(Sys.time(),pdf_infor$mtime,units = "days") < 1){ TF <- TRUE }也就是系統當前時間和文件修改時間進行比較,若時間不超過一天說明該文件被更新過了,那麼我們就將該文件發生給客戶或領導。5、發送郵件
recipients <- c("18*******25@139.com") sender <- "16******06@qq.com" time <- Sys.Date()-30 mailR::send.mail( from = sender, to = recipients , subject = "統計數據分析", body = paste0("Super越 您好!",months(time),"數據統計報告已發送至您郵箱,請注意查收!"), encoding = "utf-8", smtp = list( host.name = "smtp.qq.com", port = 465, user.name = sender, passwd = ("**郵箱密碼**","**授權碼**"),ssl = TRUE ), authenticate = TRUE, attach.files =data_pdf , file.names=c('統計數據分析'), send = TF )若不需要授權碼,將授權碼去掉即可。運行完代碼登錄郵箱就看到了。此外,mailR也支持發送HTML格式的郵件內容,嵌入圖片、以及其他文件等。https://github.com/rpremraj/mailRhttp://mirrors.xmu.edu.cn/CRAN/
第三步:windows定時計劃任務
步驟一:windows環境變量中加入R語言路徑
如果你是按照默認路徑安裝的話,應該在C:\Program Files\R\R-3.4.4\bin文件夾下。
「此電腦」>「屬性」>「高級系統設置」>"高級」>「環境變量」>「path">"編輯」
我這裡已經添加過了,若沒有點新建加入剛剛尋找到的R語言路徑即可。
32位是:C:\Program Files\R\R-3.4.4\bin\i386;
62位是:C:\Program Files\R\R-3.4.4\bin\x64;
點擊確定。
新建txt文本文檔,把啟動R腳本的bat語句複製粘貼進去
Rscript 數據統計報告.R
exit
R腳本與bat腳本在同一文件夾下:
"C:\Program Files\R\R-3.4.4\bin\x64\R.exe" CMD BATCH 數據統計報告.R
Pause
若不在同一個文件夾下,則BATCH後跟R腳本地址。選擇「另存為」,保存類型選擇「所有文件」,文件名需寫後綴「.bat"。這樣R腳本就寫好了。點擊一次bat腳本觀察所寫R代碼運行的結果是否有生成。(該步驟可以嘗試使用一些簡單的R代碼運行,若成功再使用數據統計報告)。如果結果是代碼正常執行,則進入下一步。
步驟二:設置windows計劃任務
「此電腦」>「管理」>「系統工具」>「任務計劃程序」
名稱和描述自己定義描述即可。
感謝您的支持