作者peterwu76 (金岡)
看板R_Language
標題[問題] time loop
時間Tue Jul 11 14:32:51 2017
[問題類型]:
程式諮詢(我想用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://webptt.com/m.aspx?n=bbs/R_Language/M.1499754775.A.D03.html
1F:推 cccc12345: R的資料夾地址不是用\是用/吧, 你試試,看起來應該是寫 07/11 15:21
2F:→ cccc12345: 檔有問題 07/11 15:21
3F:→ cccc12345: outfile = paste("D:/", date, sep = "") 07/11 15:21
4F:→ peterwu76: 資料夾的位置單獨run沒有問題,主要是前面怎麼讓他 07/11 15:59
5F:→ peterwu76: 定時被呼叫的部分,還有sys.sleep的部分 07/11 15:59
6F:→ clansoda: 寫一個endless loop呢? 07/11 16:15
7F:→ clansoda: if (TRUE) do something 然後 sys.sleep(300) 07/11 16:15
8F:推 cccc12345: 定時其實可以 把 cd 你的rscript.exe地址 要執行的r 07/11 16:18
9F:→ cccc12345: 放在該資料夾 在下個RSCRIPT 你的R檔 整合成1個BAT檔 07/11 16:20
10F:→ cccc12345: 用WINDOWS的工作排成器設定定時執行bat檔 07/11 16:21
12F:推 cd12631: 直接寫成一個R檔用工作排成就好 07/11 16:47
13F:→ peterwu76: 謝謝前輩分享,雖然看起來用排程可以解決,但如果可以 07/11 17:17
14F:→ peterwu76: 為什麼不用R script解決@@? 07/11 17:17
※ 編輯: peterwu76 (140.112.1.187), 07/11/2017 17:36:34
15F:推 clansoda: 我建議的是一個方向 因為我做過類似的事情 但是其他前輩 07/11 17:52
16F:→ clansoda: 說的排程我覺得是比較正規的作法 07/11 17:52
17F:→ celestialgod: 其實還有taskscheduleR這個套件可以輔助 07/11 18:00
18F:→ celestialgod: 不過我後來都用linux的crontab.... 07/11 18:01
19F:→ peterwu76: 我想應該是這樣才比較不吃電腦資源,不用長期間執行R一 07/11 18:01
20F:→ peterwu76: 直run? 07/11 18:01
21F:→ clansoda: 他也不是長期一直Run吧 Run完他就停了阿 你不是五分鐘一 07/11 18:08
22F:→ clansoda: 次嗎 07/11 18:08
23F:→ clansoda: 喔 我誤會你意思 對阿 用那個排程就是比較實際的方法 07/11 18:08
24F:→ peterwu76: 感謝感謝XD 07/11 19:41
※ 編輯: peterwu76 (123.193.92.13), 07/11/2017 21:40:23
25F:推 cd12631: 撇開吃資源這事情 我是覺得用排程就是利用已經有的東西 07/11 22:56
26F:→ cd12631: 不用特別再去自己重新造輪子 把事情簡單化 07/11 22:57
27F:→ peterwu76: 感謝,難怪板上很少討論用code定時執行。 07/12 17:29