7
votes

Stockage des valeurs Tic ToC dans R

Je cherche un moyen de stocker des temps de fonctionnement dans une variable de R. à Matlab One peut faire quelque chose sur les lignes:

TIC;
...
x = toc;

et ensuite le temps d'exécution est stocké dans la variable x. J'ai essayé de faire la même chose avec la fonction TIC () TOC () dans R Provenant du paquet MATLAB sans succès. De plus, je ne vois pas comment cela peut être fait à l'aide de la fonction System.Time () de N ni. Toute aide ici est très appréciée.

r

3 commentaires

Question dupliquée: Stackoverflow.com/Questtions/1716012/stopWatch-funcer-in -r


@Vincentzoonekynd: Je demandais comment le stocker.


@Stefanhansen: Vous le stockez comme si vous stockez toute autre valeur variable ... <- .


4 Réponses :


14
votes

Utilisez l'intégré System.Time CODE> Fonction:

tm2 <- benchmark(
{
  #your code here
}, replications=1)


2 commentaires

Oh, c'était aussi simple. Merci :)


Je préfère utiliser la fonction System.Time car: 1. Cela encapsule le code que je tiens à temps; 2. Fonction intégrée, chargement de bibliothèques comme TICCOC , rbenchmark inutile.



15
votes

Plus similaire à TIC CODE> et TOC CODE> ET Parfois Handier E.G. Pour les messages d'état dans les boucles:

start <- Sys.time ()
do.something ()
Sys.time () - start


0 commentaires

4
votes

ou vous pouvez faire comme décrit dans le paquet "TICCOC".

tic("timer")
1+1
toc(log = TRUE, quiet = TRUE)
log.txt <- tic.log(format = TRUE)
tic.clearlog()


0 commentaires

2
votes

Le Le package TICTOC implémente cette fonctionnalité exacte, de sorte que le calendrier des horaires séquentiels ou imbriqués soit stocké. Dans une liste et pour une analyse ultérieure.

Par exemple, à chaque itération d'une boucle et analysez les résultats ultérieurement, utilisez la fonctionnalité journal code>. p> xxx pré>

récupération des résultats de ToC () code> comme texte formaté pour l'impression. p>

writeLines(unlist(log.txt))
# 1: 1.002 sec elapsed
# 2: 1 sec elapsed
# 3: 1.002 sec elapsed
# 4: 1.001 sec elapsed
# 5: 1.001 sec elapsed
# 6: 1.001 sec elapsed
# 7: 1.001 sec elapsed
# 8: 1.001 sec elapsed
# 9: 1.001 sec elapsed
# 10: 1 sec elapsed


2 commentaires

Une conversion plus élégante des résultats dans un fichier de données pourrait être effectuée en utilisant Purrr avec log.st%>% mapp_df (~ as_data_frame (.x))%>% Mutate (écablé = TOC -tic)


Merci, @holgerbrandl. Une correction mineure dans le code: Bibliothèque (Tairyverse); log.lst%>% mapp_df (~ as.data.frame.frame (.x))%>% Mutate (écoulée = toc-tic)