[問題] time loop

看板R_Language作者 (金岡)時間8年前 (2017/07/11 14:32), 8年前編輯推噓5(5022)
留言27則, 5人參與, 最新討論串1/3 (看更多)
[問題類型]: 程式諮詢(我想用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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.1.187 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1499754775.A.D03.html

07/11 15:21, , 1F
R的資料夾地址不是用\是用/吧, 你試試,看起來應該是寫
07/11 15:21, 1F

07/11 15:21, , 2F
檔有問題
07/11 15:21, 2F

07/11 15:21, , 3F
outfile = paste("D:/", date, sep = "")
07/11 15:21, 3F

07/11 15:59, , 4F
資料夾的位置單獨run沒有問題,主要是前面怎麼讓他
07/11 15:59, 4F

07/11 15:59, , 5F
定時被呼叫的部分,還有sys.sleep的部分
07/11 15:59, 5F

07/11 16:15, , 6F
寫一個endless loop呢?
07/11 16:15, 6F

07/11 16:15, , 7F
if (TRUE) do something 然後 sys.sleep(300)
07/11 16:15, 7F

07/11 16:18, , 8F
定時其實可以 把 cd 你的rscript.exe地址 要執行的r
07/11 16:18, 8F

07/11 16:20, , 9F
放在該資料夾 在下個RSCRIPT 你的R檔 整合成1個BAT檔
07/11 16:20, 9F

07/11 16:21, , 10F
用WINDOWS的工作排成器設定定時執行bat檔
07/11 16:21, 10F

07/11 16:27, , 11F
07/11 16:27, 11F

07/11 16:47, , 12F
直接寫成一個R檔用工作排成就好
07/11 16:47, 12F

07/11 17:17, , 13F
謝謝前輩分享,雖然看起來用排程可以解決,但如果可以
07/11 17:17, 13F

07/11 17:17, , 14F
為什麼不用R script解決@@?
07/11 17:17, 14F
※ 編輯: peterwu76 (140.112.1.187), 07/11/2017 17:36:34

07/11 17:52, , 15F
我建議的是一個方向 因為我做過類似的事情 但是其他前輩
07/11 17:52, 15F

07/11 17:52, , 16F
說的排程我覺得是比較正規的作法
07/11 17:52, 16F

07/11 18:00, , 17F
其實還有taskscheduleR這個套件可以輔助
07/11 18:00, 17F

07/11 18:01, , 18F
不過我後來都用linux的crontab....
07/11 18:01, 18F

07/11 18:01, , 19F
我想應該是這樣才比較不吃電腦資源,不用長期間執行R一
07/11 18:01, 19F

07/11 18:01, , 20F
直run?
07/11 18:01, 20F

07/11 18:08, , 21F
他也不是長期一直Run吧 Run完他就停了阿 你不是五分鐘一
07/11 18:08, 21F

07/11 18:08, , 22F
次嗎
07/11 18:08, 22F

07/11 18:08, , 23F
喔 我誤會你意思 對阿 用那個排程就是比較實際的方法
07/11 18:08, 23F

07/11 19:41, , 24F
感謝感謝XD
07/11 19:41, 24F
※ 編輯: peterwu76 (123.193.92.13), 07/11/2017 21:40:23

07/11 22:56, , 25F
撇開吃資源這事情 我是覺得用排程就是利用已經有的東西
07/11 22:56, 25F

07/11 22:57, , 26F
不用特別再去自己重新造輪子 把事情簡單化
07/11 22:57, 26F

07/12 17:29, , 27F
感謝,難怪板上很少討論用code定時執行。
07/12 17:29, 27F
文章代碼(AID): #1PP74Nq3 (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1PP74Nq3 (R_Language)