根据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
我需要所有这些数据帧的其余部分,如循环函数。
希望不要太复杂。
这就是我将如何进行:
- 根据公共列合并 table(我在这里假设您的 Cat 和 V17 列包含唯一值?)
df3 <- merge(df1, df2, by.x = "Cat", by.y = "V17")
- 如果代码 = H5,则将 V02 的值分配给 Cat
df3$Cat <- ifelse(df3$Code == "H5", df3$V02, df3$Cat)
如果没有可重现的示例,我无法测试代码,但希望这能以某种方式提供帮助。
祝你好运!
我有 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
我需要所有这些数据帧的其余部分,如循环函数。 希望不要太复杂。
这就是我将如何进行:
- 根据公共列合并 table(我在这里假设您的 Cat 和 V17 列包含唯一值?)
df3 <- merge(df1, df2, by.x = "Cat", by.y = "V17")
- 如果代码 = H5,则将 V02 的值分配给 Cat
df3$Cat <- ifelse(df3$Code == "H5", df3$V02, df3$Cat)
如果没有可重现的示例,我无法测试代码,但希望这能以某种方式提供帮助。
祝你好运!