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


128

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

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


5
@Ricardo、私たちはジョシュアと他の人たちとこれについて全体的な議論をしました、そして私たちは最終的に「一時停止」と「睡眠」の両方がタイトルにあるべきであることに同意しました。最終的なタイトルは妥協の結果でした。そして、あなたはちょうどあなたのタイトルが以前のリビジョンにロールバックする理由が何の議論もなく、ただ入っているのですか?タイトルに「スリープ」を追加すると、質問が見つけやすくなります。「スリープ」は多くの言語であり、ユーザーが検索する可能性が高いためです。現在のタイトルにはバラストという単語が多く含まれており、重要なキーワードが欠落しています。ロールバックの目的は何ですか?
TMS

グーグルの「rスリープ」はそれを見つけることができませんでした。修正しようとしました。
TMS 2014年

回答:


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)か?
レオ・レオポルド・ヘルツ준 영

私の例とイラスト誤解していると思いますが、これも測定して正確に示しています
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()関数は私のユースケースでは機能しませんでした。これが、必要な遅延の発生を管理することができた唯一の方法でした。
パケ・
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.