[问题] 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