Вот выстрел,
library(stringdist)
library(tidyverse)
df1 %>%
as_tibble() %>%
mutate(temp = amatch(title, df2$showname, maxDist = 10)) %>%
bind_cols(df2[.$temp, ]) %>%
select(-temp)
# A tibble: 3 x 4
title records showname counts
<chr> <int> <chr> <int>
1 Bob's show, part 1 42 Bob's show part 1 772
2 Time for dinner 77 Dinner time 89
3 Horsecrap 121 Dinner time 89
Я не могу воспроизвести ваш числовой совпадающий вектор, amatch(df1$title, df2$showname)
дает мне [1] NA NA NA
, так как похоже, что по умолчанию он равен 0,1, поэтому я установил maxDist
в 10.
В конце вы всегда можете добавить %>% filter(is.na(showname))
для удаления любой строки, которая не соответствует.
данные
df1 <- structure(list(title = c("Bob's show, part 1", "Time for dinner",
"Horsecrap"), records = c(42L, 77L, 121L)), .Names = c("title",
"records"), row.names = c(NA, -3L), class = "data.frame")
df2 <- structure(list(showname = c("Bob's show part 1", "Dinner time",
"No way Jose"), counts = c(772L, 89L, 123L)), .Names = c("showname",
"counts"), row.names = c(NA, -3L), class = "data.frame")