如何使执行暂停,睡眠,在R中等待X秒?


128

如何将R脚本暂停指定的秒数或毫秒数?在许多语言中,都有一个sleep函数,但是?sleep引用一个数据集。而?pause?wait不存在。

预期的目的是用于自定时动画。所需的解决方案无需用户输入即可工作。


5
@Ricardo,我们与Joshua和其他人进行了完整的讨论,我们最终同意在标题中同时显示“ pause”和“ sleep”。最终冠军是妥协的结果。您只是介入而没有任何争论,为什么您的标题更好地回滚到以前的版本?在标题中添加“ sleep”会使问题更容易查找,因为“ sleep”有多种语言,而且用户很有可能会搜索它。当前标题包含大量单词词霸和重要关键字缺失。回滚的目的是什么?
TMS

Google的“ r sleep”找不到它,试图修复它。
TMS 2014年

Answers:


144

请参阅help(Sys.sleep)

例如,来自 ?Sys.sleep

testit <- function(x)
{
    p1 <- proc.time()
    Sys.sleep(x)
    proc.time() - p1 # The cpu usage should be negligible
}
testit(3.7)

屈服

> testit(3.7)
   user  system elapsed 
  0.000   0.000   3.704 

1
这是该页面上的示例代码。暂停3.7秒,testit <-function(x){p1 <-proc.time()Sys.sleep(x)proc.time()-p1#cpu的使用应忽略不计} testit(3.7)
Dan Goldstein

21
顺便说一句,help.search(“ sleep”)会以这种方式指导您。
Dirk Eddelbuettel,2009年

为什么你不能做到Sys.sleep(10)呢?
莱奥波德·赫兹(LéoLéopoldHertz)2016年

我认为您误解了我的例子和说明,这些例子也可以衡量并因此证明了这一点,
Dirk Eddelbuettel

13

如果CPU使用率很高,则Sys.sleep()将不起作用。就像其他关键的高优先级进程正在运行(并行)一样。

这段代码对我有用。在这里,我以2.5秒的间隔打印1到1000。

for (i in 1:1000)
{
  print(i)
  date_time<-Sys.time()
  while((as.numeric(Sys.time()) - as.numeric(date_time))<2.5){} #dummy while loop
}

Sys.sleep()函数在我的用例中不起作用,这是我能够管理产生必要延迟的唯一方法。
帕克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.