R에서 실행을 일시 중지하고, 잠자고, X 초 동안 기다리는 방법은 무엇입니까?


129

지정된 초 또는 밀리 초 동안 R 스크립트를 어떻게 일시 중지합니까? 많은 언어에는 sleep함수가 있지만 ?sleep데이터 세트를 참조합니다. 그리고 ?pause?wait존재하지 않습니다.

의도 된 목적은 셀프 타임 애니메이션입니다. 원하는 솔루션은 사용자 입력을 요청하지 않고 작동합니다.


5
@Ricardo, 우리는 Joshua 및 다른 사람들과 이것에 대해 전체 토론을했고 마침내 "일시 중지"와 "수면"이 제목에 있어야한다는 데 동의했습니다. 최종 제목은 타협의 결과였습니다. 그리고 당신은 왜 당신의 제목이 이전 개정판으로 더 나은 롤백 이 더 나은지에 대한 논쟁없이 개입하고 있습니까? 제목에 "sleep"을 추가하면 "sleep"이 여러 언어로되어 있고 사용자가 검색 할 가능성이 높기 때문에 질문을 훨씬 쉽게 찾을 수 있습니다. 현재 제목에 많은 단어 balast가 포함되어 있으며 중요한 키워드가 누락되었습니다. 롤백의 목적은 무엇입니까?
TMS

Google "r sleep"에서 찾을 수 없어 고치려고했습니다.
TMS

답변:


145

을 참조하십시오 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

왜 당신은 할 수 Sys.sleep(10)없습니까?
Léo Léopold Hertz 준영 2011

나는 당신이 내 예와 삽화를 오해하고 있다고 생각합니다. 이것은 또한 그것을 측정하고 따라서 정확하게 보여줍니다 .
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 () 함수는 내 사용 사례에서 작동하지 않았으며 이것이 필요한 지연 생성을 관리 할 수있는 유일한 방법이었습니다.
Pake
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.