Несколько модификаций текстовой строки в R

#r #text #nlp

#r #текст #nlp

Вопрос:

У меня есть несколько строк, хранящихся в атомарном векторе:

 v <- c("The kat ran up the tree", "The dogg ran up the tree", "The squirrrel run up the tree")
 

Я хотел бы исправить орфографические ошибки:

 v <- gsub('kat', 'cat', v)
v <- gsub('dogg', 'dog', v)
v <- gsub('squirrel', 'squirrrel', v)
 

Однако мне не нравится повторяющийся код. Есть ли какой-нибудь способ сделать эквивалент этого:

 v1 <- c('kat', 'dogg', 'squirrrel')
v2 <- c('cat', 'dog', 'squirrel')

v <- gsub(v1, v2, v)
 

Ответ №1:

Самый простой вариант str_replace_all — передать named vector или list

 library(stringr)
str_replace_all(v, setNames(v2, v1))
 

-вывод

 #[1] "The cat ran up the tree"     
#[2] "The dog ran up the tree"  
#[3]    "The squirrel run up the tree"