R: Text Fortschrittsbalken in der for-Schleife
Habe ich einige Beispiel-code enthält eine for-Schleife und erzeugt einige plots wie diese (meine tatsächlichen Daten erstellt mehrere tausend Grundstücke):
xy <- structure(list(NAME = structure(c(2L, 3L, 1L, 1L), .Label = c("CISCO","JOHN", "STEPH"), class = "factor"), ID = c(41L, 49L, 87L, 87L), X_START_YEAR = c(1965L, 1948L, 1959L, 2003L), Y_START_VALUE = c(940L,-1760L, 110L, 866L), X_END_YEAR = c(2005L, 2000L, 2000L, 2007L), Y_END_VALUE = c(940L, -1760L, 110L, 866L), LC = structure(c(1L,1L, 2L, 2L), .Label = c("CA", "US"), class = "factor")), .Names = c("NAME", "ID", "X_START_YEAR", "Y_START_VALUE", "X_END_YEAR", "Y_END_VALUE","LC"), class = "data.frame", row.names = c(NA, -4L))
ind <- split(xy,xy$ID) # split by ID for different plots
# Plots
for (i in ind){
xx = unlist(i[,grep('X_',colnames(i))])
yy = unlist(i[,grep('Y_',colnames(i))])
fname <- paste0(i[1, 'ID'],'.png')
png(fname, width=1679, height=1165, res=150)
par(mar=c(6,8,6,5))
plot(xx,yy,type='n',main=unique(i[,1]), xlab="Time [Years]", ylab="Value [mm]")
i <- i[,-1]
segments(i[,2],i[,3],i[,4],i[,5],lwd=2)
points(xx, yy, pch=21, bg='white', cex=0.8)
dev.off()
}
Sehen den Fortschritt der for-Schleife würde mich interessieren, zu integrieren, und ein Fortschrittsbalken zu meinem code. Wie ich aus dem R-Dokumentation gibt es die txtProgressBar
http://stat.ethz.ch/R-manual/R-patched/library/utils/html/txtProgressBar.html
Aus dem Beispiel auf dieser Seite, ich verstehe, dass Sie schreiben die for-Schleife in eine Funktion zu rufen es danach, welche Kämpfe ich mit meinem Beispiel.
Wie könnte ich implementieren einen Fortschrittsbalken in der for-Schleife?
InformationsquelleAutor kurdtc | 2014-11-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
für den Fortschritt-bar zu arbeiten, müssen Sie eine Zahl ein, um deine Fortschritte zu verfolgen. das ist einer der Gründe, als eine Allgemeine Regel, die ich lieber mit für mit
(i in 1:length(ind))
statt direkt setzen das Objekt ich will es. Alternativ können Sie einfach erstellen Sie eine weiterestepi
variable, die Sie tunstepi = stepi + 1
in jeder iteration.müssen Sie zuerst erstellen Sie die progressbar-Objekt außerhalb der Schleife
dann im inneren, die Sie brauchen, zu aktualisieren, die mit jeder iteration
oder
Dies funktioniert schlecht, wenn die Schleife hat auch
print
Befehle in esja, das habe ich getan, danke. Das einzige, was nicht zu funktionieren scheint, sind die Titel und label-Optionen? Kennt Ihr zufällig einen Weg darum herum, denn es wäre cool, haben einen Titel.
Ich fand einen workaround, indem die
cat()
Funktion.InformationsquelleAutor OganM
Könnten Sie schreiben, eine sehr einfache on-the-fly zu zeigen, Prozent abgeschlossen:
Oder eine zu replizieren, die text-bar:
InformationsquelleAutor rawr