2014-01-14 3 views
0

У меня есть два data.frames, которые выглядят следующим образом:Заменить числовые значения в data.frame согласно другому data.frame

DF1  
Col1 Col2 Col3 Col4  
3  -2  -1  4  
55  45  -23  98  
12  43  123  23  



DF2  
Col1 Col2 Col3 Col4   
    1  0  0  0  
    1  1  1  0  
    1  0  1  1   

мне нужна следующий вывод:

DF3 
Col1 Col2 Col3 Col4  
3  0  0  0  
55  45  -23  0  
12  0  123  23  

Другими словами, мне нужно заменить числовые значения на 0 значений в DF1 в соответствии с DF2. Может ли кто-нибудь мне помочь?

PS: Каждый DF содержит тысячи строк и столбцов.

Лучшие

F.

+0

Каковы другие предположения о DF1 и DF2? У них одинаковое количество строк и столбцов? У столбцов одинаковые имена в обоих наборах данных? Являются ли столбцы в одном порядке? – A5C1D2H2I1M1N2O1R2T1

ответ

1
as.matrix(DF1) * as.matrix(DF2) 

Но я даже не думаю, что as.matrix() необходимо. Просто DF1 * DF2 должен делать. Причина этого заключается в том, что * - умножение на каждый соответствующий компонент. Это отличается от типичного умножения матрицы% *%

Смежные вопросы