作者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/cn.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