web-dev-qa-db-ja.com

実行を一時停止、スリープ、RでX秒待機する方法は?

指定した秒数またはミリ秒の間、Rスクリプトをどのように一時停止しますか?多くの言語には、sleep関数がありますが、?sleepはデータセットを参照します。そして、?pauseおよび?wait存在しません。

意図された目的は、セルフタイムのアニメーション用です。目的のソリューションは、ユーザー入力を求めなくても機能します。

111
Dan Goldstein

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 
130

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
}
5
rbtj