2017-10-12 10 views
1

私は、actionButtonをクリックすると、キャレットパッケージを使ってモデルを訓練するShiny Appを作っています。このトレーニングには約4-5分の時間がかかりますので、モデルが訓練されるにつれて進行するプログレスバーを表示したかったのです。Shiny Rのモデルトレーニングのプログレスバー

おかげ

+0

:このリンクを訪問し、より多くの情報を取得する

。 – Santosh

答えて

2

は、光沢のあるアプリでプログレスバーを表示するには、以下のようにserverwithProgress機能を使用する必要があります。だから、

withProgress(message = "Model is Training", value = 1.0, {    
    ## Your code 
}) 

、あなたはこの関数内にコードを入れて、それがメッセージを表示しますあなたのコードが実行されている間、 "モデルはトレーニング"です。関数内のvalueは、アプリの進行状況インジケータです(1.0は100%です)。計算に応じて設定できます。たとえば、value = min + (max - min) * 0.1と設定できます。このようにする必要はありません。コードに依存するあなたのために働くものはどれも。 value = 1.0を設定すると、 "Model is Training"という意味の関連性の高いメッセージがプログレスバーに表示されるので、問題はありません。それは参考になりました場合にはその答えを受け入れてくださいhttps://shiny.rstudio.com/reference/shiny/latest/withProgress.html

+0

@Santosh様、これはうまくいかないようですが、このコードを実行しようとしています: - observeEvent(input $ trainModelButton、{ print( "Training Begins") withProgress( "モデルがトレーニング中"、value === 1.0、{ train(demand〜temp、dataProcessed_Internal、 'rf'、ntree = 50) } –

+0

なぜコード内に 'print(" Training Begins ")を書くのですか?光沢のあるアプリは 'print'関数で印刷しません。 'renderText'を使う必要があります。何かエラーがありますか?プログレスバーを表示するのは簡単ですから。私はそれを何千回も実装しました。私は私の答えで示唆したように、 'withProgress'関数の中にコードを入れるだけです。 – Santosh

+0

'observeEvent(入力$ trainModelButton、{ withProgress( "モデルが訓練されている" は、値= 1.0、{ トレイン(需要〜TEMP、dataProcessed_Internal、 'RF'、ntree = 50) }) })'これはすべき作業。問題がある場合、 'observeEvent'とあなたの列車モデルでなければなりません。 – Santosh