#r #string #character
#r #строка #символ
Вопрос:
Есть ли способ определить, содержат ли две строки только от 1 до 0 разных символов?
Воспроизводимый пример:
library(fuzzyjoin)
library(stringr)
df1 <- data.frame(x = c("howaryou", "hello", "summer", "goodbye"), y = c(1:4))
df2 <- data.frame(x = c("howareyou", "heelo", "summe", "goodbye"), z = c(66:69))
fuzzy_left_join(df1, df2, match_fun = str_detect, by = "x")
x.x y x.y z
1 howaryou 1 <NA> NA
2 hello 2 <NA> NA
3 summer 3 summe 68
4 goodbye 4 goodbye 69
Я пытался str_detect
, но это работает только в том случае, если другой chr находится в начале или в конце («лето» и «сумма»). Тем не менее, я хотел бы получить
x.x y x.y z
1 howaryou 1 howareyou 66
2 hello 2 heelo 67
3 summer 3 summe 68
4 goodbye 4 goodbye 69
Я ценю любые предложения!
Ответ №1:
stringdist
может быть вариант
library(fuzzyjoin)
stringdist_left_join(df1, df2, by = 'x')
-вывод
# x.x y x.y z
#1 howaryou 1 howareyou 66
#2 hello 2 heelo 67
#3 summer 3 summe 68
#4 goodbye 4 goodbye 69