L'ultima uno non stampare in tempo reale, provare in questo modo:
for(i in 1:10){
Sys.sleep(0.1)
print(i)
}
Questo guarda bene in Rstudio , ma nel classico Rgui devi fare clic sulla console per aggiornarlo (aumentando il sonno ad esempio tramite Sys.sleep(0.5)
aiuta a vederlo). È possibile aggirare che utilizzando flush.console
che cancella il buffer:
for(i in 1:10){
Sys.sleep(0.1)
print(i)
flush.console()
}
o in Windows è possibile selezionare Misc
nella barra degli strumenti superiore e deselezionare la buffered output
.
Se il vostro obiettivo è quello di seguire il processo del vostro ciclo, il metodo di cui sopra si sente po 'fastidioso (almeno ai miei occhi) quando si esegue attraverso gran numero di iterazioni. In tal caso potrebbe essere più piacevole da usare barre di avanzamento:
n<- 1000
pb <- txtProgressBar(min = 0, max = n, style = 3) #text based bar
for(i in 1:n){
Sys.sleep(0.001)
setTxtProgressBar(pb, i)
}
close(pb)
o qualcosa di ancora più bello:
library(tcltk)
n<- 1000
pb <- tkProgressBar(title = "Doing something", min = 0, max = n, width = 200)
for(i in 1:n){
Sys.sleep(0.001)
setTkProgressBar(pb, i, label=paste(round(i/n*100,1),"% done"))
}
close(pb)
fonte
2013-03-28 05:47:43
Oops, sarebbe stato probabilmente una buona idea fare un esempio reale. Grazie per aver chiarito le cose. – Eric
Eric, controlla la mia risposta aggiornata, ho aggiunto esempi di funzioni che ti rendono una buona barra di avanzamento. –