替换与另一个data.frame中具有关联值的rowname匹配的列中的值

时间:2017-02-08 14:22:40

标签: r dataframe replace match

编辑:虽然当我将df1中的所有> 0值设置为1(我现在可以忍受)时,它可以使用建议的解决方案,但实际上我确实有值> 1,因此乘法不是& #34;完美"解决方案。我编辑了df1的例子,现在它应该更清楚,抱歉给您带来不便。

搜索并没有找到我的简单问题的任何解决方案,尽管这与许多其他替换问题有关。所以......

我有两个data.frames

DF1:

   a   b   c   d
 1 0   0   5   1
 2 0   1   1   0
 3 1   1   3   7

DF2:

   value   some_variable
 a  100        234
 b  200        234
 c  300        234
 d  400        234

现在我想用df2 $ value中的相应值替换df1中的值> 0。所以看起来应该是这样的:

    a    b    c    d
 1  0    0   300  400
 2  0   200  300   0
 3 100  200  300  400

我想这是一个相当基本的问题,但我无法想出一个简单的解决方案。到目前为止,我尝试了ifelsematch,但我未能将df1列中的值> 0分配给df2的rownames。

提前致以最诚挚的问候和谢意

1 个答案:

答案 0 :(得分:2)

我们可以做到

df1*df2$value[col(df1)]