我有一个矩阵A
与 i
, j
, z
值( 1:72
、 1:205
、 z
)。我想更换 z
矩阵的值A
通过z
数据框的值 B
,并放置其他非 NA
值为 0。
矩阵A
:
1 2 3 4 5 6 7 ... 205
1 999 999 0 0 0 0 1.7 0
2 999 0 0.3 1.2 4.3 2.1 0 3.8
...
72 999 999 999 999 999 0 0 2.5
数据框B
:
i j z
6 1 1
3 2 1
我想要什么:
1 2 3 4 5 6 7 ... 205
1 999 999 0 0 0 1 0 0
2 999 0 1 0 0 0 0 0
...
72 999 999 999 999 999 0 0 0
我知道如何用另一个数字替换特定数字,例如 A[A== 0]<-B
,但我的第二个数据集是一个 3 列数据框,仅包含 i
, j
一些点的值。
如有任何帮助,我们将不胜感激,谢谢!
最佳答案
A[as.matrix(B[1:2])] <- B[[3]]
您可以使用 B
的前两列作为 A
的数字索引。
关于对于特定坐标,用另一个矩阵的值替换矩阵的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21555006/