我有一个5000行4000列的零矩阵。 此外,我还有另一个包含400,000行和3列的矩阵。第一列表示行索引,第二列表示列索引,最后一列是值。 我想使用索引矩阵更新第一个矩阵。 例如:
data <- matrix(0, 10, 7)
> data
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 0 0 0 0 0 0 0
[2,] 0 0 0 0 0 0 0
[3,] 0 0 0 0 0 0 0
[4,] 0 0 0 0 0 0 0
[5,] 0 0 0 0 0 0 0
[6,] 0 0 0 0 0 0 0
[7,] 0 0 0 0 0 0 0
[8,] 0 0 0 0 0 0 0
[9,] 0 0 0 0 0 0 0
[10,] 0 0 0 0 0 0 0
ind <- matrix(c(1, 2, 5,
2, 3, 6,
5, 7, 4,
5, 6, 16), ncol=3, byrow=T)
> ind
[,1] [,2] [,3]
[1,] 1 2 5
[2,] 2 3 6
[3,] 5 7 4
[4,] 5 6 16
我希望在更新元素后能获得以下矩阵:
> data
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 0 5 0 0 0 0 0
[2,] 0 0 6 0 0 0 0
[3,] 0 0 0 0 0 0 0
[4,] 0 0 0 0 0 0 0
[5,] 0 0 0 0 0 16 4
[6,] 0 0 0 0 0 0 0
[7,] 0 0 0 0 0 0 0
[8,] 0 0 0 0 0 0 0
[9,] 0 0 0 0 0 0 0
[10,] 0 0 0 0 0 0 0
在我这个大问题中,最好/高效的解决方案是什么?