2012-10-22 126 views
2

我有兩個數據幀,一個包含數字,第二個包含數字,第二個是二進制,兩者大小相同。如果數據幀B中的相應變量是0而不是1,我現在想用數據幀A中的所有數字替換爲NA。如果它是1,則數字應該保持不變。 我該怎麼做?基於R中另一個矩陣/ df替換df /矩陣中的值

DF一

A B C 
1 34 32 12 
2 52 23 34 

DF乙

A B C 
1 1 1 1 
2 0 0 1 

期望的結果

A B C 
1 34 32 12 
2 na na 34 

回答

5

如果你使用的矩陣工作,這是爲mat1[which(mat2 == 0)] <- NA一樣簡單。

+0

啊,甚至更好。需要很長時間才能進入R的子集和索引方式... – ShellfishGene

+0

N.B:你不需要'which' – Cath

3

我發現我的答案,閱讀文檔後,我想替換命令只是工作的載體,但下面的伎倆:

new.df <- replace(A.df, B.df == 0, "NaN") 
相關問題