Я пытаюсь перевести некоторые слова, встроенные в строки символов. Я хочу использовать таблицу «переводчик», в которой я настроил соответствие для соответствующего слова.
Вот некоторые похожие посты, но я не смог найти решение из них:
Ниже приведены некоторые данные для работы (mtcars
- это набор данных, включенный в R) и фрагмент кода, который отражает проблему / вопрос.
library(tidyverse)
chr_strings = rownames(mtcars) # I want to replace strings within this object
# here is the "translator" table where it is possible to establish the links between strings
trans_df = data.frame(pat = c("Mazda", "Merc", "Toyota"),
rep = c("Mazda corp.", "Mercedes", "Toy."), # I have intentionally used different lengths
stringsAsFactors = F)
Цель состоит в том, чтобы заменить шаблоны, перечисленные в trans_df$pat
в пределах chr_strings
, на шаблоны, соответствующие строкам из rans_df$rep
.
В основном я пробовал что-то для этой функции:
str_replace_all(string = chr_strings, pattern = trans_df$pat, replacement = trans_df$pat) # not working
Это приводит к этой ошибке:
Warning message:
In stri_replace_all_regex(string, pattern, fix_replacement(replacement), :
longer object length is not a multiple of shorter object length
Возможно, неправильное использование функции str_replace_all
... Любой совет приветствуется!