1

R では<<-、関数内でシンボルを使用しlapply()て、外部の変数に値を割り当てることができますlapply()

1 でいっぱいの行列を考えてみましょう:

m<-matrix(data=1, nrow=5, ncol=5)

代入記号 を使用して、各行を値 1,2,3,4 および 5 に置き換えたいとしましょう<<-。関数 lapply 関数を使用できます (そのような操作用に設計された関数ではありません。これは単なる例です)。

lapply(X = seq(nrow(m)), FUN = function(r){
  m[r,]<<-seq(5)
})

これは機能します。

しかし、mclapply を次のように使用すると、次のようになります。

mclapply(X = seq(nrow(m)), FUN = function(r){
  m[r,]<<-seq(5)
})

行列 m は 1 のままです。

アイデアは、マトリックスの行に変更を適用し、新しい行を作成するのではなく、既存の行に割り当てることです。唯一の制約は、parallel パッケージの関数を使用することです (例: mclapply() ですが、別の関数の方が適切かもしれません)。
また、<<-記号の使用は必須ではありません。
どうやってやるの ?

4

2 に答える 2