ベクトルとして表された n 値のセットを、対応する行列内の位置のセットに挿入したいと考えています。実際のアプリケーションでは、n 行 x ncol > n の次元のグリッドとして表される領域の画像に n 個の海面温度値のセットを挿入し、温度値を受け取る n 個の水ピクセルを特定しました。 . 私が遭遇した問題は、温度値が、R グリッドのインデックスに使用される行優先の順序付けではなく、列優先の行列からのものであるかのように順序付けられることです。
これが私の言いたいことのおもちゃの例です。
> grid <- matrix(0,4,4)
> grid # define the base grid
[,1] [,2] [,3] [,4]
[1,] 0 0 0 0
[2,] 0 0 0 0
[3,] 0 0 0 0
[4,] 0 0 0 0
> temps <- c(9,9,9,9,9) # we have 5 temperature values
> locs <- c(2,3,4,6,7) # locations in the base grid that are water
> grid[locs] <- temps # not really what I want - substitution in row-major order
> grid
[,1] [,2] [,3] [,4]
[1,] 0 0 0 0
[2,] 9 9 0 0
[3,] 9 9 0 0
[4,] 9 0 0 0
望ましい結果は次のようになります。
[,1] [,2] [,3] [,4]
[1,] 0 9 9 9
[2,] 0 9 9 0
[3,] 0 0 0 0
[4,] 0 0 0 0
グリッドを転置し、置換を行ってから転置して元に戻すことができると思いますが、この問題に取り組むにはもっと良い方法があると思います。