web-dev-qa-db-fra.com

Comment faire une pause d'exécution, dormir, attendre X secondes dans R?

Comment mettre en pause un script R pendant un nombre spécifié de secondes ou de millisecondes? Dans de nombreuses langues, il existe une fonction sleep, mais ?sleep fait référence à un ensemble de données. Et ?pause et ?wait n'existent pas.

Le but visé est de créer des animations à synchronisation automatique. La solution souhaitée fonctionne sans demander la saisie de l'utilisateur.

111
Dan Goldstein

Voir help(Sys.sleep).

Par exemple, de ?Sys.sleep

testit <- function(x)
{
    p1 <- proc.time()
    Sys.sleep(x)
    proc.time() - p1 # The cpu usage should be negligible
}
testit(3.7)

Céder

> testit(3.7)
   user  system elapsed 
  0.000   0.000   3.704 
130
Dirk Eddelbuettel

Sys.sleep () ne fonctionnera pas si l'utilisation du processeur est très élevée; comme dans d'autres processus critiques de haute priorité en cours d'exécution (en parallèle).

Ce code a fonctionné pour moi. Ici, j'imprime 1 à 1000 à un intervalle de 2,5 secondes.

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