R 用特定坐标的另一个矩阵的值替换矩阵的一部分

R 用特定坐标的另一个矩阵的值替换矩阵的一部分,r,matrix,replace,dataframe,R,Matrix,Replace,Dataframe,我有一个矩阵a,带有I,j,z值(1:72,1:205,z)。我想用数据帧B的z值替换矩阵A的z值,并将其他非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

我有一个矩阵
a
,带有
I
j
z
值(
1:72
1:205
z
)。我想用数据帧
B
z
值替换矩阵
A
z
值,并将其他非
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]
a[as.matrix(B[1:2])这样的数字来替换一个特定的数字嗨,谢谢你抽出时间回答。我尝试了你的代码,但它没有用A矩阵中的B项替换A项,它创建了一个对应于z列的数字向量。。。也许我不明白你让我做什么?非常感谢,事实上我的问题更难,因为我必须在3D阵列中进行替换,但我对矩阵进行了替换,我为阵列的每个切片复制了一个矩阵,它工作了!所以A是一个数组,B是一个矩阵,但现在可以了。再次感谢你!
B
的第一行是否真的是
c(1,6,1)
,而不是
c(6,1,1)
(您的结果矩阵似乎表明了这一点)
A[as.matrix(B[1:2])] <- B[[3]]