に表示しています。時間、完了パーセント、プロセスの現在のステータスなどのステータスメッセージをユーザーに提示する関数を記述したいと思います。私はメッセージの組み立てを扱うことができますが、コンソールに印刷してスクロールアップする以外の何かをしたいと思います。 message()
のようなスクロールせずに、グラフィックスを使わずにメッセージを変更したいと本当に思います。これはRで可能ですか?は状態メッセージをR
答えて
このような場合はどうですか?
for(i in 1:10) {
Sys.sleep(0.2)
# Dirk says using cat() like this is naughty ;-)
#cat(i,"\r")
# So you can use message() like this, thanks to Sharpie's
# comment to use appendLF=FALSE.
message(i,"\r",appendLF=FALSE)
flush.console()
}
'cat()'との不平を主張するR-bloggersの投稿で議論されているように、 'cat()'を使わず、 'message()'を使うことができます。 –
@Dirk: 'message(...、appendLF = FALSE)'でなければならないでしょう。そうでなければ、OPが特に避けたいと思うコンソールにスクロールメッセージが現れます。 – Sharpie
@Dirk 'cat()'を 'message()'に置き換えると、それぞれの更新時に改行が追加されます。改行を防ぐために余分なことをしなければなりませんか? FWIWでは、 'txtProgressBar'は' cat() 'を使います。 –
あり、これを行うために、よりエレガントな方法かもしれないが、これはそれを行うことができます:
test.message <- function() {
for (i in 1:9){
cat(i)
Sys.sleep(1)
cat("\b")
}
}
あなたは自動的にあなたのメッセージを生成している場合、あなたはどのように多くの\ B文字を計算する必要があります正しい量をバックアップするために出力するが、それはかなり簡単である。
utils
パッケージには、txtProgressBar
とそれを更新するための関数が含まれています。この関数を使用して、プロセスの完了率を示すことができます。
は更新がコンソールをスクロールせずに処理する方法の例については、txtProgressBar
の呼び出し中に作成されup1
、up2
とup3
機能を参照してください。
それは素晴らしいです! 'tpb < - txtProgressBar(...);で、独自の更新関数を作成して設定することもできます。 myUpFun < - 関数(値){...}; tpb $ up < - myUpFun'です。そして、 'message()'を使って更新関数を書くことができますので、Dirkはノイズを抑えることができます。 ;-) –
@ジョシュア:良い観察!私がカスタム更新関数を作成することを熟考していたとき、私はそれを実装するために 'txtProgressBar()'をコピーして書き直さなければならないと考えていました。 – Sharpie
'plyr :: progress_text'もあります。しかし、それは単純なラッパー 'txtProgressBar'ですが、... – aL3xa
ここにいくつかのブリングブリングがあります。 ?tcltk::tkProgressBar
から。
pb <- tkProgressBar("test progress bar", "Some information in %",
0, 100, 50)
Sys.sleep(0.5)
u <- c(0, sort(runif(20, 0 ,100)), 100)
for(i in u) {
Sys.sleep(0.1)
info <- sprintf("%d%% done", round(i))
setTkProgressBar(pb, i, sprintf("test (%s)", info), info)
}
Sys.sleep(5)
close(pb)
これは本当に完璧であることは素晴らしいですが、私の現在の必要性はテキストのみの解決策です。 –
tcltkがポップアップしたときにあなたの質問を最後まで読まなかった。それは私が謝罪する衝動的な答えでした。おそらく、将来のあなたにはいつかそれが必要になるでしょう。 –
+1素晴らしい。それは私にもTclTkについて少し学ぶように促します。 – Iterator
- 1. メッセージ116、レベル16、状態1
- 2. メッセージ5074、レベル16、状態1、行1インデックス 'IX_Alias_Alias' は 'エイリアス' が
- 3. は状態
- 4. 状態別に層別サンプルを作成する方法R
- 5. 受信トレイのメッセージの状態を読み取る
- 6. メッセージ4104、レベル16、状態1、プロシージャcst_priceimporter、行37
- 7. Meteorアプリケーションのサーバー状態とユーザー、状態の作成方法は?
- 8. componentWillReceiveProps状態が還元状態更新後のレンダリング状態と異なる
- 9. RFCOMM_CreateConnection - 既に開いている状態:2、RFC状態:4、MCB状態:5
- 10. 有限状態マシン:複数の状態への1つの状態
- 11. StateT IOを状態
- 12. 状態:not_verified pubsubhubbub
- 13. ゲームレベル/メニュー状態
- 14. 休止状態:
- 15. ユニックス状態チェック!
- 16. pthreadスレッド状態
- 17. IISセッション状態
- 18. ASP.NETセッション状態
- 19. python asynchat状態
- 20. Handles.RotationHandle()の状態
- 21. GWTクライアント状態
- 22. プレスアンドロイドボタンの状態
- 23. asp.netセッション状態
- 24. ASP.Netセッション状態
- 25. ViewStateの状態
- 26. セット状態
- 27. Isapiフィルター - 状態
- 28. PHP - トグル状態
- 29. angularsjs状態プロバイダマルチパラメータ
- 30. メニューページの状態
"これはR.でありノーである場合のみか。" - サイモンBlomberg –