Wäre großartig. ZB wenn es einen Fortschrittsbalken innerhalb eines Fortschrittsbalkens gibt...
Es wäre schön, wenn so etwas funktioniert:
pb1 <- progress_bar$new(total = 100)
for(i in 1:100){
pb1$tick()
pb2 <- progress_bar$new(total = 100)
for(j in 1:100){
pb2$tick()
Sys.sleep(1/1000)
}
}
Ja genau.
Ich denke, wir können einen globalen Stapel aktiver Fortschrittsbalken haben. In Displays, die nur einen Fortschrittsbalken unterstützen, insbesondere R Studio, würden wir nur den obersten anzeigen und möglicherweise eine Zusammenfassung für den Rest anzeigen. ZB für drei Ebenen:
85% | 34% | 50% [====================--------------------] ETA 13s
Bei Terminals mit angemessener ANSI-Unterstützung können wir alle Fortschrittsbalken (nun, bis zu 10-20) gleichzeitig anzeigen.
Ich denke, eine Möglichkeit, 3 oder 4 gleichzeitige Fortschrittsbalken in einer Zeile zu unterstützen, besteht darin, Unicode-Braille-Muster zu verwenden
[⠿⠿⠟⠛⠛⠛⠒⠒⠒⠒ ]
@jimhester das ist schlau, aber leider auch sehr begrenzt.
Die folgende Funktion, die ich gebaut habe, ist sehr grob, aber warum ist so etwas wie unten nicht möglich? Ich würde es gerne in einem Fortschrittspaket mit den Fortschrittsoptionen haben.
Daten neu erstellen:
df <- data.frame(samplecol=c(1:50),
file=c(1:50))
df$file <- paste0("file",df$file)
x <-function() {Sys.sleep(1/100)}
y <-function() {Sys.sleep(1/20)}
Funktion:
doubleProgressBar <- function(x, y) {
for (i in 1:100) {
x()
for(j in 1:50){
y()
cat("\014")
writeLines(c(paste0("OVERALL PROGRESS:", i,"%"," [",paste(rep("+",round((i/5))), collapse="")),
paste0("FILE%: ",(j*2),"%"," CURRENTLY LOADING FILE: ",df[j,"file"], " [",paste(rep("+",round((j/2.5))), collapse=""))))
}
cat("\014")
writeLines(c(paste0("OVERALL PROGRESS:", i,"%"," [",paste(rep("+",round((i/5))), collapse="")),
paste0("FILE%: ",(j*2),"%"," CURRENTLY LOADING FILE: ",df[j,"file"], " [",paste(rep("+",round((j/2.5))), collapse=""))))
}
}
###Does what I want, but with crude text entry.
###Would be nice to have a package with nice entry have a double bar
doubleProgressBar(x,y)
Dies wäre einfach, wenn alle R-Terminals die ANSI-Escape-Sequenz unterstützen würden, um den Cursor nach oben zu bewegen. Leider tun dies einige (insbesondere das Standard-Windows-Terminal) nicht, sodass Sie nur die letzte Textzeile mit \r
.
Können Sie eine Option hinzufügen, um vollständige ANSI-Escape-Sequenzen zu verwenden?
Alternativ können Sie den horizontalen Raum zwischen den Fortschrittsbalken aufteilen...
Hilfreichster Kommentar
Ja genau.
Ich denke, wir können einen globalen Stapel aktiver Fortschrittsbalken haben. In Displays, die nur einen Fortschrittsbalken unterstützen, insbesondere R Studio, würden wir nur den obersten anzeigen und möglicherweise eine Zusammenfassung für den Rest anzeigen. ZB für drei Ebenen:
Bei Terminals mit angemessener ANSI-Unterstützung können wir alle Fortschrittsbalken (nun, bis zu 10-20) gleichzeitig anzeigen.