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

时间:2012-10-22 14:13:03

标签: r matrix replace

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

df A

   A  B  C
1  34 32 12
2  52 23 34

df B

   A  B  C
1  1  1  1
2  0  0  1

期望的结果

   A  B  C
1  34 32 12
2  na na 34

2 个答案:

答案 0 :(得分:7)

如果你正在处理矩阵,那就像mat1[which(mat2 == 0)] <- NA一样简单。

答案 1 :(得分:4)

我找到了答案,在阅读了文档后,我认为替换命令仅适用于矢量,但以下是诀窍:

new.df <- replace(A.df, B.df == 0, "NaN")