编辑:虽然当我将 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
我想这是一个相当基本的问题,但我无法想出一个简单的解决方案。到目前为止我尝试过ifelse
和match
但我无法将 df1 列中 >0 的值分配给 df2 的行名。
提前致以最诚挚的问候和感谢
最佳答案
我们能做到
df1*df2$value[col(df1)]
关于将与另一个 data.frame 中的行名匹配的列中的值替换为关联值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115679/