Сравнение строк между фреймами данных - PullRequest
0 голосов
/ 04 октября 2018

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

Идея состоит в том, чтобы назначить «да / нет / может быть» для каждой строки при поиске «возможных совпадений» в другом фрейме данных (возможны орфографические ошибки или неверный ввод ... Я просто хочу сузить поиск совпадений)

Это то, что R может справиться довольно хорошо?

1 Ответ

0 голосов
/ 05 октября 2018

Добро пожаловать в stackoverflow!Существует функция с именем adist, которая вычисляет расстояние редактирования Левенштайна между двумя строками (см. Аналогичный вопрос здесь ).

Не зная вашего конкретного варианта использования, мы можем составить пример:

df <- data.frame(a = c('comparing', 'strings', 'between', 'dataframes'),
                 b = c('comparing', 'integers', 'between', 'data.frames'),
                 stringsAsFactors = F)

df$levenshtein <- mapply(adist, df$a, df$b)
df$ismatch <- 'maybe'
df$ismatch[df$levenshtein == 0] <- 'yes'
df$ismatch[df$levenshtein >= 3] <- 'no'

df
# gives:
           a           b levenshtein ismatch
1  comparing   comparing           0     yes
2    strings    integers           6      no
3    between     between           0     yes
4 dataframes data.frames           1   maybe

Вы можете изменить диапазон для ответа 'maybe', конечно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...