dopar%使用時の印刷方法を教えてください。
2023-08-21 01:59:02
質問
私は
foreach
を使用するループがあります。
%dopar%
と
doSNOW
をバックエンドとします。ループが反復するたびに何かを出力するにはどうしたらよいでしょうか?
以下の私のコードは私が現在使用しているものですが、それは何も印刷しません。
foreach(ntree=rep(25,2),.combine=combine,.packages='randomForest',
.inorder=FALSE) %dopar% {
print("RANDOM FOREST")
randomForest(classForm,data=data,na.action=na.action,do.trace=do.trace,ntree=ntree,mtry=mtry)
}
どのように解決するのですか?
ここには多くの良い解決策が投稿されていますが、私は、ソケットにログを記録し、別のプロセスを使ってログ呼び出しをコンソールに出力するのが最も簡単だと思います。
私は以下の関数を使用しています。
log.socket <- make.socket(port=4000)
Log <- function(text, ...) {
msg <- sprintf(paste0(as.character(Sys.time()), ": ", text, "\n"), ...)
cat(msg)
write.socket(log.socket, msg)
}
というように、コード内にログ文を配置することができます。
Log("Processing block %d of %d", i, n.blocks)
ログ出力は、簡単なソケットリスニングツールを使ってリアルタイムに見ることができます。例えば、Linuxでnetcatを使用します。
nc -l 4000
上記のログ文は、netcatターミナルに次のように表示されます。
2014-06-25 12:30:45: Processing block 2 of 13
この方法は、リモートで作業できる利点があり、ログに残したいだけの詳細な出力を提供します。
p.s. Windows をお使いの方は Jon Craton の netcat ポート .
p.p.s
を推測しています。
write.socket
R関数はおそらくスレッドセーフではありませんが、高い頻度でログを記録していない限り、問題に遭遇することはまずないでしょう。しかし、注意しなければならないことがあります。
関連
-
[解決済み] Rの再現性のある優れた例題の作り方
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] データフレームを結合(マージ)する方法(内側、外側、左側、右側)
-
[解決済み] データフレームの行を複数の列でソート(並び替え)する。
-
[解決済み] foreachループの現在の反復処理のインデックスを取得するにはどうすればよいですか?
-
[解決済み] リストをデータフレームに変換する
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] FUN内のlapplyインデックス名へのアクセス
-
[解決済み] ggplot2 で個々のファセットにテキストをアノテートする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
[解決済み] ネストされた plot_grid を同じサイズに拡大縮小するには?
-
[解決済み] 空のdata.frameを作成する
-
[解決済み] 非常に大きなテーブルをデータフレームとして高速に読み込む
-
[解決済み] 不足しているパッケージをチェックし、インストールするためのエレガントな方法?
-
[解決済み] ggplot2 を使って 2 つの変数を同じグラフに線でプロットする
-
[解決済み] Rでオブジェクト(変数)が定義されているかどうかを確認するには?
-
[解決済み】ggplot2で軸のタイトルやラベルの大きさを変更する。
-
[解決済み】エラー:Rで関数が見つかりませんでした。
-
[解決済み] [Solved] data.frameのカラムをベクトルに変換する?