根据R中的第二个df转换一个df的值

Convert value of one df based on second df in R

我有 2 个数据帧 df1 和 df2。 df1 有 2 个特定列:

                                                    Code: H4, H5. 
                                                    Cat: 010121, 010190, 345654... 
                                                    and other variables too

df2 有 2 列:V17 & V02。这两列都包含值,但 V17 包含与 df1 中的 Cat 列相同的值,但顺序不同。

V17       v02
010121    010110
010129    010190
010130    010190
.....     .....

我需要的是以下内容:如果 df1$code= H5 的特定行,则必须更改 Cat 列中的观察值通过 V02

中的相应值

例如我在 df1 中有这样一行:

Code     Cat        ...
H4       010121     ...

010121 值必须更改为 010110(根据 V02

V17       v02
010121    010110

我需要所有这些数据帧的其余部分,如循环函数。 希望不要太复杂。

这就是我将如何进行:

  1. 根据公共列合并 table(我在这里假设您的 Cat 和 V17 列包含唯一值?)

df3 <- merge(df1, df2, by.x = "Cat", by.y = "V17")

  1. 如果代码 = H5,则将 V02 的值分配给 Cat

df3$Cat <- ifelse(df3$Code == "H5", df3$V02, df3$Cat)

如果没有可重现的示例,我无法测试代码,但希望这能以某种方式提供帮助。

祝你好运!