【发布时间】:2021-11-24 18:13:18
【问题描述】:
我需要做的是:我有一个带有q1_monetary_unit 和value 列的数据框,我们称之为df:
ID q1_monetary_unit value
1 -999 1000
2 -999 2000
3 10 US dollars -888
4 21 euros -888
每当我所在国家/地区的货币未回答价值时,都会有一个描述价值和外币的字符串。我还有一个数据框,其中包含我所在国家/地区货币中每种货币的价值,如下所示:
US dollar Euro
780 850
所以我的最终目标是将“10 美元”变成 10 * 780,将 21 欧元变成 21 * 850,并将这些值放入 value 列,如下所示:
ID value
1 1000
2 2000
3 7800
4 17850
所以,处理我的原始数据,经过一些转换后,我设法获得了以下数据框,我们称之为df2:
ID value
3 7800
4 17850
所以,我想知道当ID 与这个新数据框中的 ID 相对应时,在我的原始数据框中替换 value 的最简单方法是什么。尝试做类似的事情
df %>% mutate(value = case_when(id %in% df2$id~ df2$value,
T ~ value))
但它不起作用。我可以删除df 中的行并绑定df2 中的行,但这听起来效率不高。在 Python 中,我会使用 map() 函数,但我不确定 R 的 map 是否以同样的方式工作。任何帮助将不胜感激。
【问题讨论】: