最後のものはリアルタイムで印刷されます。次のように試してください。
for(i in 1:10){
Sys.sleep(0.1)
print(i)
}
これは Rstudio では問題ないように見えますが、従来の Rgui では、コンソールを更新するためにコンソールをクリックする必要があります (たとえば、スリープを長くすると、それSys.sleep(0.5)
を確認するのに役立ちます)。flush.console
which を使用してバッファーをクリアすることで、これを回避できます。
for(i in 1:10){
Sys.sleep(0.1)
print(i)
flush.console()
}
または、Windows ではMisc
、上部のツールバーで を選択して のチェックを外すことができますbuffered output
。
あなたの目標がループのプロセスを追跡することである場合、多数の反復を実行しているとき、上記の方法は(少なくとも私の目には)少し不快に感じます。その場合、プログレス バーを使用する方がよい場合があります。
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)
またはさらに良いもの:
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)