Как заменить неправильно написанное слово на правильное в R - PullRequest
1 голос
/ 15 октября 2019

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

Мне нужно заменить каждое неправильное слово на правильное слово в другом фрейме данных. Не могли бы вы сообщить мне, если есть какой-либо лучший способ.

a <- data.frame(reported_terms=c('abdome pain','adominal ache','adomen'),
                stringsAsFactors = FALSE)

b <- data.frame(wrong=c('adomen','adominal','abdome'),correct=c('abdomen','abdominal','abdomen'),
                stringsAsFactors = FALSE)

Я пытаюсь с помощью следующего кода, но не получаю ожидаемый вывод

corr_report_terms=list() # created empty list.

for(i in a){
  str_split(i," ")
  if(any(i %in% b))
    corr_report_terms <- b$correct
}

Ожидаемый вывод:

abdomen pain
abdominal ache
abdomen

1 Ответ

0 голосов
/ 15 октября 2019

хитро, но работает:

library(stringi) 
stri_replace_all_regex(a$reported_terms, "\\b"%s+%b$wrong%s+%"\\b", b$correct, vectorize_all=FALSE)
[1] "abdomen pain"   "abdominal ache" "abdomen"   
...