Как сделать паузу выполнения, спать, ждать X секунд в R?

Как вы приостановите R script за указанное количество секунд или миллисекунд? На многих языках существует функция sleep, но ?sleep ссылается на набор данных. И ?pause и ?wait не существуют.

Назначение предназначено для самозатухающих анимаций. Желаемое решение работает без запроса ввода пользователя.

Ответ 1

См. 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 

Ответ 2

Я сделал вам пример, надеюсь, это полезно

# 1st let make a graph with limits xlim =0:10 e ylim=0:10.
plot(0:10,0:10, type="n")

# let use the 'for' to put texts on graph:
for(i in 1:10)
    text(i,i, paste("**", i))

## let retard steps 1 sec

plot(0:10,0:10, type="n")
for(i in 1:9){
    text(i,i, paste("step", i))
    Sys.sleep(1) 
}

# please wait some seconds.......
# now faster
plot(0:10,0:10, type="n")
for(k in 1:9){
    text(k,k, paste("step", k))
    Sys.sleep(.1) ## retard steps 0,1 sec
}

Ответ 3

Sys.sleep() не будет работать, если использование ЦП очень велико; как и в других критически важных процессах с высоким приоритетом (параллельно).

Этот код работал у меня. Здесь я печатаю от 1 до 1000 с интервалом 2,5 секунды.

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
}