Saltar al contenido

Eliminar todos los caracteres especiales de un string en R?

La guía o código que verás en este artículo es la resolución más eficiente y válida que hallamos a esta inquietud o dilema.

Solución:

Debe usar expresiones regulares para identificar los caracteres no deseados. Para obtener el código más fácil de leer, desea que el str_replace_all desde el stringr paquete, sin embargo gsub desde la base R funciona igual de bien.

La expresión regular exacta depende de lo que esté tratando de hacer. Podría eliminar los caracteres específicos que proporcionó en la pregunta, pero es mucho más fácil eliminar todos los caracteres de puntuación.

x <- "[email protected]#$%^&*()_+:"<>?,./;'[]-=" #or whatever
str_replace_all(x, "[[:punct:]]", " ")

(El equivalente base R es gsub("[[:punct:]]", " ", x).)

Una alternativa es intercambiar todos los caracteres no alfanuméricos.

str_replace_all(x, "[^[:alnum:]]", " ")

Tenga en cuenta que la definición de lo que constituye una letra, un número o un signo de puntuación varía ligeramente según su ubicación, por lo que es posible que deba experimentar un poco para obtener exactamente lo que desea.

En lugar de usar expresiones regulares para eliminar esos caracteres “locos”, simplemente conviértalos a ASCII, lo que eliminará los acentos, pero mantendrá las letras.

astr <- "Ábcdêãçoàúü"
iconv(astr, from = 'UTF-8', to = 'ASCII//TRANSLIT')

lo que resulta en

[1] "Abcdeacoauu"

Convierta los caracteres especiales en apóstrofe,

Data  <- gsub("[^0-9A-Za-z///' ]","'" , Data ,ignore.case = TRUE)

Codifíquelo a continuación para eliminar el apóstrofo extra '''

Data <- gsub("''","" , Data ,ignore.case = TRUE)

Usar gsub(..) función para reemplazar el carácter especial con apóstrofe

Al final de la post puedes encontrar los informes de otros desarrolladores, tú incluso tienes la libertad de insertar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *