首页 > 解决方案 > `rows_update` 错误:`x` 键值不唯一

问题描述

是否可以使用rows_update非唯一的 x 值?

library(dplyr)

x = tibble(x = c(1,1,2), z = "x")
y = tibble(x = c(1,2), z = "y") 
   
rows_update(x, y)
#> Matching, by = "x"
#> Error: `x` key values are not unique.

reprex 包于 2020-07-17 创建(v0.3.0)

标签: rdplyr

解决方案


问题是rows_update需要关键变量取唯一值。如果要在rows_update不创建额外列的情况下使用约束,我建议:

x %>% distinct() %>% 
rows_update(y, by = "x") %>% 
right_join(x %>% select(x), by = "x")

推荐阅读