3

パッケージ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 行を無視する方法は?

4

1 に答える 1