我希望能够模糊匹配一列并精确匹配另一列。
假设我 df1 看起来像这样:
df2 看起来像这样:
我想模糊匹配“名称”但精确匹配“年份”。所以“Ashley”和“Ashlee”将是匹配的。这是我到目前为止所拥有的:
res <- fuzzy_left_join(
df,
df2,
by=c("Year","Name"),
list(`==`, function(x,y) stringdist(tolower(x), tolower(y), method="lv") <= 3)
)
res %>%
select(Year = Year.x, everything(), - Year.y)
不过,它似乎过度匹配。不知道发生了什么。