我有两个数据框,一个包含我的所有数据,另一个包含一些数据的更正 ID 号。
当我尝试使用左联接、内联接或完全联接来联接这些值时,我最终得到两个 ID 列(ID.x 和 ID.y)。无论如何要这样做,以便我更正的数据集中的 ID 简单地替换完整数据集中的 ID?
例如,
df.full <- left_join(df.full, correctID,
by = c("value"))
Run Code Online (Sandbox Code Playgroud)
我已经尝试了 copy = TRUE 和 FALSE,但这似乎没有帮助。
有几种情况:
如果您总是想要值 from correctID,只需ID从df.full第一个删除列:
df.full %>%
select(-ID) %>%
left_join(correctID, by = "value")
Run Code Online (Sandbox Code Playgroud)
如果correctID不完整,并且您只想在出现时使用它:
df.full %>%
left_join(correctID, by = "value") %>%
mutate(ID = coalesce(ID.y, ID.x)) %>%
select(-ID.y, -ID.x)
Run Code Online (Sandbox Code Playgroud)
当然,您可以在相反的情况下反转它(仅correctID在df.full$ID缺少时才想使用)。
| 归档时间: |
|
| 查看次数: |
1003 次 |
| 最近记录: |