3

次のコードは警告を生成します。

Warning message:
<anonymous> : <anonymous>: ... may be used in an incorrect context: ‘mean(x[l], ...)’

doForeach <- function(x, ...)
{
    require(doSNOW)
    require(foreach)
    cl <- snow::makeCluster(2, type="MPI")
    on.exit(snow::stopCluster(cl))
    registerDoSNOW(cl)
    do.i <- function(i) lapply(seq_len(length(x)), function(l) mean(x[l], ...))
    foreach(i=seq_len(10)) %dopar% { do.i(i) }
}
x <- rnorm(20)
r <- doForeach(x, trim=1)

それは労働者/奴隷がもう見ないという事実から来ていると思い...ます。正式な引数は通常、を介して文字ベクトルとして渡されますが、引数には.export=c("<arg>")機能しないようです...

...この例で引数を処理する正しい方法は何ですか?

4

1 に答える 1

2

さて、どうやら...引数はを介して渡される必要がありますdo.i。より明白な(そして正しく実行されている)例を次に示します。

doForeach <- function(x, ...)
{
    require(doSNOW)
    require(foreach)
    cl <- snow::makeCluster(2, type="MPI")
    on.exit(snow::stopCluster(cl))
    registerDoSNOW(cl)
    do.i <- function(i, ...) lapply(seq_len(length(x)), function(l) max(x[l], ...))
    foreach(i=seq_len(5)) %dopar% { do.i(i, ...) }
}
x <- 1:3
doForeach(x, 1.5)
于 2013-01-05T08:37:39.450 に答える