Я хочу вставить набор из n значений, выраженных в виде вектора, в соответствующий набор местоположений в матрице. Реальное приложение включает в себя вставку набора из n значений температуры поверхности моря в изображение области, представленной в виде сетки с размером nrow x ncol> 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
Полагаю, я мог бы поиграть с транспонированием сетки, выполнением замены, а затем транспонированием ее обратно, но я думаю, что есть лучший способ подойти к этой проблеме.