У меня есть два набора данных, и я пытаюсь создать набор данных на основе частичного совпадения двух полей из этих двух наборов данных.
Я использую фильтр dplyr
и мне нужно найти частичные партиалы в каждой строке. Я пытался использовать str_replace()
, но это не похоже на таблицу $ col.
Минимальный воспроизводимый пример:
library(dplyr)
id <- c('1','2','3')
code<- c('a1231','b3211','c9871985')
tbl<- data.frame(id,code)
other_cd <- c('a123','b321','c987')
other_cd <- data.frame(other_cd)
match <- tbl %>% dplyr::filter(code %in% other_cd$other_cd) %>%
dplyr::summarise(count = n_distinct(id))
Ниже я попробовал использовать str_replace ()
fuzzy_match <- tbl %>% dplyr::filter(code %in% str_detect(other_cd$other_cd, "^[other_cd$other_cd]")) %>%
dplyr::summarise(count = n_distinct(id))
Я бы хотел, чтобы fuzzy_match
содержал 3 строки с частично подобранными элементами, поэтому вывод может выглядеть примерно так:
id code other_cd
1 a1231 a123
2 b3211 b321
3 c9871985 c987