1
library(foreach)
library(doMPI)

m<-matrix(as.integer(0),5,5)

cl <- startMPIcluster(count=4)
registerDoMPI(cl)

foreach(b=1:5)%dopar%
  {
    m[b,]<-c(1:5)
  }

Rで上のコードを実行すると、下の結果が得られました。

> m
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    0    0
[2,]    0    0    0    0    0
[3,]    0    0    0    0    0
[4,]    0    0    0    0    0
[5,]    0    0    0    0    0

行ごとの置換に行列を適用するにはどうすればよいですか?

4

1 に答える 1

1

の目的は、クラスターを作成した R プロセスの環境でオブジェクトを変更することではありませんforeach%dopar%これらの関数が主に使用されるのは、なんらかの処理を行い、最後に評価された式の値を返すことです。

代わりに、

mNew <- foreach(b=1:5, .combine = rbind) %dopar%
{
  c(1:5)
}

または、元のマトリックスから特定の要素のみを「置換」したい場合は、

mNew <- foreach(b=1:5, .combine = rbind) %dopar%
{
  c(m[b, seq_len(b)], seq_len(5)[seq_len(5 - b)])
}
于 2012-11-21T23:17:32.560 に答える