2015-10-15 148 views
0

我一直在使用txtProgressBar()一段時間。從今天開始,如果使用style=3,它將停止工作。 它只是顯示一個空的進度條,並沒有更新。txtProgressBar突然停止使用樣式= 3

昨天我更新了一些軟件包,但不是utils包AFAIK。也許系統管理員在我不知道的情況下更新了R。

重現:

for (i in 1:10) { 
pb <- txtProgressBar(max = 11, style = 3) 
Sys.sleep(1) 
setTxtProgressBar(pb, pb$getVal()+1) 
} 
close(pb) 

在我而言,這正說明:

|       | 0% 

所有的時間。其他樣式(1和2)正常工作。

我的[R細節:

> R.version 
       _       
platform  x86_64-pc-linux-gnu                                                  
arch   x86_64                                                     
os    linux-gnu                                                    
system   x86_64, linux-gnu                                                  
status                                                         
major   3                                                      
minor   2.2       
year   2015       
month   08       
day   14       
svn rev  69053      
language  R       
version.string R version 3.2.2 (2015-08-14) 
nickname  Fire Safety 

有我丟失的東西,也許東西可以在我的會話設置錯誤,或者這是一個錯誤?

+1

你把'PB < - txtProgressBar(最大值= 11,風格= 3)'** **內循環。在它之前,它應該在**外面。 – 2015-10-15 12:59:32

回答

2

你把pb <- txtProgressBar(max = 11, style = 3)循環。它應該是以外的環,以前的它。 此外,您的max是不正確的。它應該是10,因爲你for迴路從1到10

pb <- txtProgressBar(max = 10, style = 3) 
for (i in 1:10) { 
    Sys.sleep(0.5) 
    setTxtProgressBar(pb, pb$getVal()+1) 
} 
close(pb) 
+0

其實我是一個雙白癡。首先,發佈這樣一個有缺陷的問題。其次,因爲它仍然不適用於我目前的應用程序。原因是,我發現,我有一個'mclapply()'調用,它從包'raster'調用'pbStep(pb)'。由於某種原因,昨天停止工作。 '用setTxtProgressBar(pb,pb $ getVal()+ 1)替換''效果很好。 – AF7

-1

以下部分代碼:pb <- txtProgressBar(max = 11, style = 3) 應該在for循環之外。在我的解釋中,如果你把它放在裏面,你可以在循環的每個循環中重新初始化進度條。 下面的代碼做你期待什麼:

pb <- txtProgressBar(max = 11, style = 3) 
for (i in 1:10) { 

    Sys.sleep(1) 
    setTxtProgressBar(pb, pb$getVal()+1) 
} 
close(pb) 
+0

不客氣。 – 2015-10-15 13:12:54