0

次のコードの速度を改善するにはどうすればよいですか?

for (i in 1:nrow(training)){
     score[training[i,1],training[i,2],training[i,4]] = training[i,3] 
  }

Training4 列の行列です。training[i,3]値が上記の式に従っている配列を作成したいだけです。

ありがとう!

4

1 に答える 1

6

マトリックスを使用してインデックスを作成できます。[のドキュメントの関連部分は次のとおりです。

A third form of indexing is via a numeric matrix with the one
 column for each dimension: each row of the index matrix then
 selects a single element of the array, and the result is a vector.

したがって、あなたの場合、forループは次のように置き換えることができます。

score[training[, c(1, 2, 4)]] <- training[, 3]
于 2013-04-26T04:32:38.153 に答える