[問題] time loop

作者: peterwu76 (金岡)   2017-07-11 14:32:51
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
讓R每5分鐘執行一次資料下載
[程式範例]:
library(jsonlite)
library(RCurl)
library(httr)
while (TRUE) {
if (format(Sys.time(), "%S") == "01") return("Downloading") else
Sys.sleep(300)
Dataurl<-url("https://airbox.edimaxcloud.com/devices?token=EA81A1FA-8EDB-4CA0-
B07B-A881C74B0401")
DATA<-fromJSON(Dataurl)
Table<-data.frame(DATA)
date <- sprintf("%s_minutes.csv", format(Sys.time(),"%Y%m%d%H%M%S"))
outfile = paste("D:\\", date, sep = "")
write.csv(Table, file = outfile)
}
# 以上code已可成功執行並output,只是 return("Downloading") 沒什麼供用
# http://i.imgur.com/mdIdBY1.jpg 結果如連結圖片
[環境敘述]:
R-Studio
[關鍵字]:
選擇性,也許未來有用
Sys.time sys.sleep time loop
作者: cccc12345 (fa65sfs5f5a46sas)   2017-07-11 15:21:00
R的資料夾地址不是用\是用/吧, 你試試,看起來應該是寫檔有問題outfile = paste("D:/", date, sep = "")
作者: peterwu76 (金岡)   2017-07-11 15:59:00
資料夾的位置單獨run沒有問題,主要是前面怎麼讓他定時被呼叫的部分,還有sys.sleep的部分
作者: clansoda (小笨)   2017-07-11 16:15:00
寫一個endless loop呢?if (TRUE) do something 然後 sys.sleep(300)
作者: cccc12345 (fa65sfs5f5a46sas)   2017-07-11 16:18:00
定時其實可以 把 cd 你的rscript.exe地址 要執行的r放在該資料夾 在下個RSCRIPT 你的R檔 整合成1個BAT檔用WINDOWS的工作排成器設定定時執行bat檔https://goo.gl/NctFhk
作者: cd12631 (<(◥█◤△◥█◤)>)   2017-07-11 16:47:00
直接寫成一個R檔用工作排成就好
作者: peterwu76 (金岡)   2017-07-11 17:17:00
謝謝前輩分享,雖然看起來用排程可以解決,但如果可以為什麼不用R script解決@@?
作者: clansoda (小笨)   2017-07-11 17:52:00
我建議的是一個方向 因為我做過類似的事情 但是其他前輩說的排程我覺得是比較正規的作法
作者: celestialgod (天)   2017-07-11 18:00:00
其實還有taskscheduleR這個套件可以輔助不過我後來都用linux的crontab....
作者: peterwu76 (金岡)   2017-07-11 18:01:00
我想應該是這樣才比較不吃電腦資源,不用長期間執行R一直run?
作者: clansoda (小笨)   2017-07-11 18:08:00
他也不是長期一直Run吧 Run完他就停了阿 你不是五分鐘一次嗎喔 我誤會你意思 對阿 用那個排程就是比較實際的方法
作者: peterwu76 (金岡)   2017-07-11 19:41:00
感謝感謝XD
作者: cd12631 (<(◥█◤△◥█◤)>)   2017-07-11 22:56:00
撇開吃資源這事情 我是覺得用排程就是利用已經有的東西不用特別再去自己重新造輪子 把事情簡單化
作者: peterwu76 (金岡)   2017-07-12 17:29:00
感謝,難怪板上很少討論用code定時執行。

Links booklink

Contact Us: admin [ a t ] ucptt.com