我想在特定时间运行 R 代码

Posted

技术标签:

【中文标题】我想在特定时间运行 R 代码【英文标题】:I want to run a R code at a specific time 【发布时间】:2012-04-29 13:47:51 【问题描述】:

我想在我需要的特定时间运行 R 代码。 进程完成后,我想终止 R 会话。

如果代码如下,

tm<-Sys.time()
write.table(tm,file='OUT.TXT', sep='\t');
quit(save = "no")

我应该怎么做才能在“2012-04-18 17:25:40”运行此代码。 我需要你的帮助。提前致谢。

【问题讨论】:

您是否考虑过在 R 之外使用 cron?一些线索:Using cron、Linux、Windows cron equivalent 或 OSX 我使用任务计划程序和批处理文件解决了这个问题。谢谢:) 【参考方案1】:

使用 Windows 的任务计划程序最简单,或者在 Linux 下使用cron job。您可以在此处指定应在您指定的特定时间运行的命令或程序。

【讨论】:

你漏掉了else print("I'm still waiting...\n") :-) 我使用任务计划程序和批处理文件解决了这个问题。谢谢:)【参考方案2】:

如果您无法使用 cron 作业服务并且必须在 R 中进行调度,则以下 R 代码显示了如何等待特定时间量以便在预先指定的目标时间执行。

stop.date.time.1 <- as.POSIXct("2012-12-20 13:45:00 EST") # time of last afternoon execution. 
stop.date.time.2 <- as.POSIXct("2012-12-20 7:45:00 EST") # time of last morning execution.
NOW <- Sys.time()                                        # the current time
lapse.time <- 24 * 60 * 60              # A day's worth of time in Seconds
all.exec.times.1 <- seq(stop.date.time.1, NOW, -lapse.time) # all of afternoon execution times. 
all.exec.times.2 <- seq(stop.date.time.2, NOW, -lapse.time) # all of morning execution times. 
all.exec.times <- sort(c(all.exec.times.1, all.exec.times.2)) # combine all times and sort from recent to future
cat("To execute your code at the following times:\n"); print(all.exec.times)

for (i in seq(length(all.exec.times)))    # for each target time in the sequence
  ## How long do I have to wait for the next execution from Now.
  wait.time <- difftime(Sys.time(), all.exec.times[i], units="secs") # calc difference in seconds.
  cat("Waiting for", wait.time, "seconds before next execution\n")
  if (wait.time > 0) 
    Sys.sleep(wait.time)   # Wait from Now until the target time arrives (for "wait.time" seconds)
    
      ## Put your execution code or function call here
    
  

【讨论】:

光彩照人,光彩照人

以上是关于我想在特定时间运行 R 代码的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中并行运行函数

加载特定视图控制器后立即运行代码

如何在 MS Access 应用程序中每周的特定时间之间运行我的 VBA 代码

我想在 html 文件中运行 php 代码

如何在特定时间触发android中的后台服务?

具有特定形状的 Wordcloud [关闭]