我有两个数据框,一个包含我的所有数据,另一个包含一些数据的正确ID号。
当我尝试通过左,内部或完全联接来联接这些值时,最终会出现两个ID列(ID.x和ID.y)。无论如何,这样做是为了使我校正后的数据集中的ID替换掉整个数据集中的ID?
例如,
df.full <- left_join(df.full, correctID,
by = c("value"))
我尝试了copy = TRUE和FALSE,但这似乎无济于事。
答案 0 :(得分:2)
有几种情况:
如果您总是要从correctID
中获取值,只需先从ID
中删除df.full
列即可:
df.full %>%
select(-ID) %>%
left_join(correctID, by = "value")
如果correctID
不完整,并且您只想在出现时使用它:
df.full %>%
left_join(correctID, by = "value") %>%
mutate(ID = coalesce(ID.y, ID.x)) %>%
select(-ID.y, -ID.x)
您当然可以在相反的情况下将其反转(仅当缺少correctID
时才想使用df.full$ID
)。