根据R中的另一个矩阵/ df替换df/matrix中的值

She*_*ene 2 replace r matrix

我有两个数据帧,一个包含数字,第二个是二进制,两者都是相同的大小.NA如果数据帧B中的相应变量为0而不是1,我现在想用数据帧A中的所有数字替换.如果它是1,则数字应该保持不变.我该怎么做?

df A.

   A  B  C
1  34 32 12
2  52 23 34
Run Code Online (Sandbox Code Playgroud)

df B.

   A  B  C
1  1  1  1
2  0  0  1
Run Code Online (Sandbox Code Playgroud)

期望的结果

   A  B  C
1  34 32 12
2  na na 34
Run Code Online (Sandbox Code Playgroud)

Mat*_*rde 7

如果您正在使用矩阵,那就很简单了mat1[which(mat2 == 0)] <- NA.


She*_*ene 6

我找到了答案,在阅读文档后,我认为替换命令仅适用于向量,但以下方法可以解决问题:

new.df <- replace(A.df, B.df == 0, "NaN")
Run Code Online (Sandbox Code Playgroud)