нечеткое соединение с частичным совпадением строк - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть датафрейм с двумя столбцами, который может содержать буквально любой символ различных форматов, и я хотел бы сопоставить их.

library(stringr)
library(fuzzyjoin)

x <- data.frame(idX=1:3, string=c("silver", "30BEDJE202AA", "30BEDJE2027"))
y <- data.frame(idY=letters[1:3], seed=c("sliver", "30BEDJE202ABC", "30BEDJE2027BL"))
x$string = as.character(x$string)
y$seed = as.character(y$seed)

x %>% fuzzy_left_join(y, by = c(string = "seed"), match_fun = str_detect)

Вот результат, который я получаю при запуске приведенного выше кода:

  idX       string  idY seed
1   1       silver <NA> <NA>
2   2 30BEDJE202AA <NA> <NA>
3   3  30BEDJE2027 <NA> <NA>

И вот что я хотел бы иметь:

  idX       string  idY seed
1   1       silver  a sliver
2   2 30BEDJE202AA  b 30BEDJE202ABC
3   3  30BEDJE2027  c 30BEDJE2027BL

Есть ли способ добраться туда?

...