2017-08-02 1 views
1

ich replicate bin mit meiner eigenen analyse Funktion mehrmals (analyse kehrt eine Liste) auszuführen:Hinzufügen von Fortschrittsbalken zu replizieren Funktion in R

results <- replicate(reps, analyse()) 

Gibt es eine Möglichkeit Fortschrittsbalken an, zeigt den Prozentsatz der Repliken beendet im Moment? Ich habe versucht mit txtProgressBar, aber weiß nicht, wie man es ohne eine Schleife macht.

EDIT: reproduzierbares Beispiel replicate:

analyse <- function() { 
    out <- list('a' = vector('list', 5), 'b' = vector('list', 5)) 
} 
results <- replicate(3, analyse()) 

In meinem Fall Ausgabe von analyse ist eine tiefe Liste von Listen mit den Ergebnissen. Ich möchte, dass der Fortschrittsbalken jedes Mal aktualisiert wird, wenn eine neue Spalte von results ausgefüllt wird, also nach jeder Replikation.

+0

Sie könnten eine Art Indikator in 'analyse' Funktion zusammen mit' Sys.sleep (1) 'hinzufügen, um den Fortschritt explizit zu drucken – parth

+0

Das ist eine Lösung, aber ich hätte lieber in Form eines Fortschrittsbalkens wenn möglich – Michal

+0

weiter können wir den Indikator, den ich als globale Variable erwähnt habe, verwenden und mit 'txtProgressBar' oder einem anderen Fortschrittsindikator in einigen Zeitintervallen darauf zugreifen. – parth

Antwort

0

Sie könnten das folgende Beispiel in einer Schleife for versuchen

x <- seq(1,100) 
pb <- txtProgressBar(1, 100, style=3) 
StartTime <- Sys.time() 
for(i in x){ 
    Sys.sleep(0.01) 
    setTxtProgressBar(pb, i) 
} 

Sys.time() - StartTime 
+0

Wie kann ich dieses Beispiel auf die 'replicate' Funktion anwenden? Wie ich in meiner Frage erwähnt habe, weiß ich, wie man es in einer For-Schleife macht. Allerdings möchte ich 'replicate' verwenden, weil meine Loops für meine Daten langsam sind. – Michal

+0

Ich habe die Änderungen nicht bemerkt. Können Sie ein reproduzierbares 'replicate' Beispiel veröffentlichen? – Prradep

0

Die Lösung pbreplicate() Funktion von pbapply Paket zu verwenden ist. Dieses Paket enthält auch entsprechende Fortschrittsbalkenfunktionen für apply(), lapply() und sapply().

Verwandte Themen