使用列表将所有字符映射到 R 中的另一组字符以获取字符串

Mapping all characters into another set of characters in R for a string using list

如何根据字符映射的预定义字典(命名列表)有效地修改单个字符串(将成为列的一部分)?

假设我有映射:

map <- list('a' = 'u', 'e' = 'i', 'i' = 'o', 'o' = 'a', 'u' = 'e')

和字符向量:

imp_text <- c('aei', 'ou ei', 'iua oe')

我想对 imp_text 应用一些函数并获得

c('uio' , 'ae io', 'oeu ai')

其中每个字符都是根据 map 中定义的关联翻译的。将来,map 可能包含整个字母表的映射,而 imp_text 可能包含非常大量的条目。我该如何做到这一点?我更喜欢 tidyverse 方法,但欢迎任何方法。

chartr(paste0(names(map), collapse=""), paste(map, collapse=""), imp_text)
# [1] "uio"    "ae io"  "oeu ai"