tildes studio especiales charset caracteres acentos r non-ascii-characters

studio - utf-8 caracteres especiales



Reemplace los caracteres acentuados en R con contrapartida no acentuada(codificación UTF-8) (2)

Las respuestas a continuación son básicamente tomadas de otros lugares. La clave es obtener su unwanted_array en el formato correcto. Puede quererlo como una list :

unwanted_array = list( ''Š''=''S'', ''š''=''s'', ''Ž''=''Z'', ''ž''=''z'', ''À''=''A'', ''Á''=''A'', ''Â''=''A'', ''Ã''=''A'', ''Ä''=''A'', ''Å''=''A'', ''Æ''=''A'', ''Ç''=''C'', ''È''=''E'', ''É''=''E'', ''Ê''=''E'', ''Ë''=''E'', ''Ì''=''I'', ''Í''=''I'', ''Î''=''I'', ''Ï''=''I'', ''Ñ''=''N'', ''Ò''=''O'', ''Ó''=''O'', ''Ô''=''O'', ''Õ''=''O'', ''Ö''=''O'', ''Ø''=''O'', ''Ù''=''U'', ''Ú''=''U'', ''Û''=''U'', ''Ü''=''U'', ''Ý''=''Y'', ''Þ''=''B'', ''ß''=''Ss'', ''à''=''a'', ''á''=''a'', ''â''=''a'', ''ã''=''a'', ''ä''=''a'', ''å''=''a'', ''æ''=''a'', ''ç''=''c'', ''è''=''e'', ''é''=''e'', ''ê''=''e'', ''ë''=''e'', ''ì''=''i'', ''í''=''i'', ''î''=''i'', ''ï''=''i'', ''ð''=''o'', ''ñ''=''n'', ''ò''=''o'', ''ó''=''o'', ''ô''=''o'', ''õ''=''o'', ''ö''=''o'', ''ø''=''o'', ''ù''=''u'', ''ú''=''u'', ''û''=''u'', ''ý''=''y'', ''ý''=''y'', ''þ''=''b'', ''ÿ''=''y'' )

Puedes hacerlo fácilmente con iconv o chartr :

> iconv(string, to=''ASCII//TRANSLIT'') [1] "Holmer" > chartr(paste(names(unwanted_array), collapse=''''), paste(unwanted_array, collapse=''''), string) [1] "Holmer"

De lo contrario, tendrá que recorrer todos los reemplazos porque mapply o similar no darían cuenta de los símbolos que ya fueron reemplazados por las operaciones anteriores de gsub :

# the loop: out <- string for(i in seq_along(unwanted_array)) out <- gsub(names(unwanted_array)[i],unwanted_array[i],out)

El resultado:

> out [1] "Holmer"

Esta pregunta ya tiene una respuesta aquí:

Tengo algunas cadenas en R en codificación UTF-8 que contienen acentos. Ej .: string="Hølmer" o string="Elizalde-González"

¿Hay alguna función agradable en R para reemplazar los caracteres acentuados en estas cadenas por su contraparte sin acento? He visto algunas soluciones en PHP here , pero ¿cómo hago esto en R?

Ej. El código PHP

$unwanted_array = array( ''Š''=>''S'', ''š''=>''s'', ''Ž''=>''Z'', ''ž''=>''z'', ''À''=>''A'', ''Á''=>''A'', ''Â''=>''A'', ''Ã''=>''A'', ''Ä''=>''A'', ''Å''=>''A'', ''Æ''=>''A'', ''Ç''=>''C'', ''È''=>''E'', ''É''=>''E'', ''Ê''=>''E'', ''Ë''=>''E'', ''Ì''=>''I'', ''Í''=>''I'', ''Î''=>''I'', ''Ï''=>''I'', ''Ñ''=>''N'', ''Ò''=>''O'', ''Ó''=>''O'', ''Ô''=>''O'', ''Õ''=>''O'', ''Ö''=>''O'', ''Ø''=>''O'', ''Ù''=>''U'', ''Ú''=>''U'', ''Û''=>''U'', ''Ü''=>''U'', ''Ý''=>''Y'', ''Þ''=>''B'', ''ß''=>''Ss'', ''à''=>''a'', ''á''=>''a'', ''â''=>''a'', ''ã''=>''a'', ''ä''=>''a'', ''å''=>''a'', ''æ''=>''a'', ''ç''=>''c'', ''è''=>''e'', ''é''=>''e'', ''ê''=>''e'', ''ë''=>''e'', ''ì''=>''i'', ''í''=>''i'', ''î''=>''i'', ''ï''=>''i'', ''ð''=>''o'', ''ñ''=>''n'', ''ò''=>''o'', ''ó''=>''o'', ''ô''=>''o'', ''õ''=>''o'', ''ö''=>''o'', ''ø''=>''o'', ''ù''=>''u'', ''ú''=>''u'', ''û''=>''u'', ''ý''=>''y'', ''ý''=>''y'', ''þ''=>''b'', ''ÿ''=>''y'' ); $str = strtr( $str, $unwanted_array );

Parecía bastante agradable, pero ¿cómo haría esto en R?


Otra opción es usar el paquete gsubfn :

library(gsubfn) string="Hølmer" gsubfn(paste(names(unwanted_array),collapse=''|''), unwanted_array,string) [1] "Holmer"