使用列表将所有字符映射到 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"
如何根据字符映射的预定义字典(命名列表)有效地修改单个字符串(将成为列的一部分)?
假设我有映射:
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"