Как сделать паузу выполнения, спать, ждать 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
}