パッケージparallel
を使用して計算を行っています。おもちゃの例を次に示します。
library(parallel)
m = matrix(c(1,1,1,1,0.2,0.2,0.2,0.2), nrow=2)
myFun = function(x) {
if (any(x<0.5)) {
write("less than 0.5", stderr())
return(NA)
} else {
write("good", stdout())
return(mean(x))
}
}
cl = makeCluster(2, outfile="/tmp/output")
parApply(cl, m, 2, myFun)
stopCluster(cl)
問題は、stdout と stderr の両方が にリダイレクトされること/tmp/output
です。ファイルは次のoutput
ようになります。
starting worker pid=51083 on localhost:11953 at 11:37:12.966
starting worker pid=51093 on localhost:11953 at 11:37:13.261
good
good
less than 0.5
less than 0.5
stdout と stderr にそれぞれ 2 つの個別のファイルをセットアップする方法はありますか? また、「starting worker pid=...」の最初の 2 行を無視する方法は?