Je cherche un moyen de stocker des temps de fonctionnement dans une variable de R. à Matlab One peut faire quelque chose sur les lignes: P>
TIC;
...
x = toc; p> blockQuote>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. p>
4 Réponses :
Utilisez l'intégré System.Time CODE> Fonction: tm2 <- benchmark(
{
#your code here
}, replications=1)
Oh, c'était aussi simple. Merci :)
Je préfère utiliser la fonction System.Time CODE> car: 1. Cela encapsule le code que je tiens à temps; 2. Fonction intégrée, chargement de bibliothèques comme TICCOC code>, rbenchmark code> inutile.
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
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()
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é récupération des résultats de journal code>. p> 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
Une conversion plus élégante des résultats dans un fichier de données pourrait être effectuée en utilisant Purrr code> avec log.st%>% mapp_df (~ as_data_frame (.x))%>% Mutate (écablé = TOC -tic) code>
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) code>
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 ...
<- code>.