Замените не-ascii-символы определенным списком строк без цикла в R.

Я хочу заменить не-ascii-символы (на данный момент только испанские) их эквивалентами ascii. Если у меня есть «а», я хочу заменить его на «а» и так далее.

Я создал эту функцию (работает нормально), но я не хочу использовать цикл (включая внутренние циклы, такие как sapply).

latin2ascii<-function(x) {
if(!is.character(x)) stop ("input must be a character object")
require(stringr)
mapL<-c("á","é","í","ó","ú","Á","É","Í","Ó","Ú","ñ","Ñ","ü","Ü")
mapA<-c("a","e","i","o","u","A","E","I","O","U","n","N","u","U")
for(y in 1:length(mapL)) {
  x<-str_replace_all(x,mapL[y],mapA[y])
  }
x
}

Есть ли элегантный способ решить эту проблему? Любая помощь, предложение или модификация приветствуются

6
задан Álvaro 22 May 2012 в 15:00
поделиться