2017-08-02 21 views
1

私は自分のanalyse関数を複数回(analyseリターンリスト)を実行するためにreplicateを使用していますRの関数を複製します複製は現時点で終了しましたか?私はtxtProgressBarで試しましたが、for-loopなしで動作させる方法はわかりません。追加プログレスバーが

EDIT:私の場合はreplicate:

analyse <- function() { 
    out <- list('a' = vector('list', 5), 'b' = vector('list', 5)) 
} 
results <- replicate(3, analyse()) 

の再現性の例は、analyseの出力が結果にリストの深いリストです。 resultsという新しい列が記入されるたびにプログレスバーを更新したいので、各レプリケーションの後に進めてください。

+0

'Sys.sleep(1)'と一緒に 'analyse'関数のインジケータを追加して、明示的に進捗状況を表示することができます。 – parth

+0

これは一つの解決策ですが、可能であればプログレスバーの形にします – Michal

+0

私がグローバル変数として述べた 'インジケータ'を使用して、ある時間間隔で 'txtProgressBar'や他の進捗インジケータを使ってアクセスすることができます – parth

答えて

0

あなたは解決策がpbapplyパッケージからpbreplicate()機能を使用することですforループ

x <- seq(1,100) 
pb <- txtProgressBar(1, 100, style=3) 
StartTime <- Sys.time() 
for(i in x){ 
    Sys.sleep(0.01) 
    setTxtProgressBar(pb, i) 
} 

Sys.time() - StartTime 
+0

この例を' replicate'関数にどのように適用できますか?私の質問で言及したように、私はforループでそれを行う方法を知っています。しかし、私は 'レプリケート'を使用したいと思っています。私のデータではループが遅くなるためです。 – Michal

+0

私は変更に気付かなかった。再現可能な 'replicate'の例を投稿できますか? – Prradep

0

で、次の例を試みることができます。このパッケージには、それぞれapply()lapply()およびsapply()のプログレスバー機能が含まれています。

関連する問題