将与另一个 data.frame 中的行名匹配的列中的值替换为关联值

标签 r dataframe replace match

编辑:虽然当我将 df1 中所有 >0 值设置为 1 时(我暂时可以接受),它可以使用建议的解决方案,但我实际上确实有值 >1,所以乘法不是“完美”对此的解决方案。我编辑了 df1 示例,现在应该更清楚了,对于给您带来的不便,我们深表歉意。

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

我有两个数据框

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 的行名。

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

最佳答案

我们能做到

df1*df2$value[col(df1)]

关于将与另一个 data.frame 中的行名匹配的列中的值替换为关联值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115679/

相关文章:

R:添加自定义刻度线标签

python - Pandas 数据框 : how to sentence into words and select rows that have more than 10 words?

python - Pandas 数据框 - 具有包含字符串列表的列

ubuntu - 将一种模式的出现更改为另一种模式

c# - 删除 "[ ]"和字符串中出现的所有内容

regex - scala 正则表达式组匹配和替换

R:将矩阵分割成任意数量的 block

html - Rshiny - 将 slider 与文本输入相结合,使 slider 更加人性化

r - 解释来自 "condition has length > 1"函数的 `if` 警告

python - 无法将 Pandas DataFrame 列数据类型转换为特定大小的字符串 (|S2)