2017-08-09 112 views
0

我運行一個包含SQL查詢的R腳本,並導入.csv文件並每天將其發送給經理和操作。但我期待自動執行此過程,以便我可以幫助我完成自動化的步驟。運行R腳本的自動化

.csv文件有日戳。

mydb = dbConnect(MySQL(), user='*******', password='******', dbname='********', host='*****8***') 

setwd('C:\\Users\\******\\Work\\2. ****\\26. Cluster_Bags') 

#Change the data here 
startdate='2017-07-24' 

sql_text=paste("SELECT ********************************, 


FROM ******************** 
WHERE *********** 
       ") 
ClusterwiseBag=dbGetQuery(mydb,sql_text) 

#Creates a file with the name "Clusterbag date.csv"   
b=paste("Clusterbag",startdate,".csv",sep="") 

write.csv(ClusterwiseBag,b) 
+1

你使用'PHP'嗎?如果是,那麼使用'cron job'來做這件事。 –

+2

你可以1)創建一個運行你的腳本的批處理文件(它將是一個.bat文件,它包含類似'「c:\ Program Files(x86)\ R \ R-3.3.0 \ bin \ x64 \ R 「CMD BATCH d:/ Data/Test/YourScript.r」2)使用Windows任務計劃程序(如果使用Windows;其他操作系統具有自己的調度程序),將該批處理文件安排爲每天運行一次。此外,從R發送電子郵件,請參閱https://stackoverflow.com/questions/23412265/how-do-you-send-email-from-r – Ape

回答

1

這是我如何去自動執行腳本:

首先改變STARTDATE到:
STARTDATE = Sys.Date()

如果你喜歡,添加自動電子郵件,例如使用:
庫(mailR)
SEND.MAIL(來自= 「[email protected]
爲= C( 「[email protected]」, 「[email protected]」),
用戶名=「from」,密碼=「」更新「,body =」「,authenticate = T,
smtp = list(host.name =」smtp.gmail.com「,port = 465,
user.name = 123456" ,SSL = T),
attach.files = C(b))

然後使用RStudio外接taskscheduleR讓每天的基礎上運行該腳本。

+0

send.mail中的錯誤(from =「」,to = c(「***」),: 找不到函數「send.mail」 –

+0

也許庫還沒有安裝?先試試install.packages(「mailR」),然後在庫(mailR)和send.mail ...) –

+0

我試過了,但它仍然顯示相同的錯誤 –