Eliminar espacios en blanco en R con trimws()

Manipulaci贸n de datos con R Manipulaci贸n de texto
Eliminar espacios en blanco en R con trimws()

Los datos sin procesar suelen contener espacios en blanco no deseados, como saltos de l铆nea, tabulaciones o 鈥渞etornos de carro鈥 al principio, al final o a ambos lados de los caracteres. En R, existe una funci贸n llamada trimws que simplifica la eliminaci贸n de estos espacios en blanco iniciales y finales. Adem谩s, ofrece la posibilidad de especificar otras expresiones regulares, lo que permite a los usuarios eliminar cualquier car谩cter no deseado.

Sintaxis de trimws

La funci贸n trimws de R base contiene tres argumentos: el vector de caracteres de entrada (x), el lado en el que eliminar espacios en blanco (which) y la expresi贸n regular de espacios en blanco (whitespace):

trimws(x,                                  # Vector de caracteres
       which = c("both", "left", "right"), # Lado a eliminar. Por defecto es "both" (ambos)
       whitespace = "[ \t\r\n]")           # Expresi贸n regular para espacios en blanco

La funci贸n devuelve el vector de caracteres de entrada sin los espacios en blanco especificados.

Eliminar espacios en blanco o caracteres al principio y al final

Por defecto, la funci贸n elimina tanto los espacios en blanco iniciales como los finales de una cadena, como se muestra a continuaci贸n:

# Cadena de texto con espacios al principio y al final
x <- "  texto   "

# Eliminar espacios
x <- trimws(x)
x
"texto"

La funci贸n tambi茅n puede aplicarse a un vector o a una columna de un data frame:

# Data frame con una columna con espacios
df <- data.frame(x = 1:3, y = c(" gato ", "  pero ", "    caballo "))

# Eliminar espacios
df$y <- trimws(df$y)
df$y
"gato"   "perro"   "caballo"

Ten en cuenta que la funci贸n trimws no s贸lo elimina los espacios en blanco por defecto, sino que tambi茅n elimina los saltos de l铆nea (\n), los retornos de carro (\r) y las tabulaciones (\t):

# Texto con otros tipos de espacios
x <- " \r texto\t\n"

# Eliminar espacios
x <- trimws(x)
x
"texto"

El argumento whitespace permite especificar los caracteres o expresiones regulares que deben eliminarse. El siguiente ejemplo muestra c贸mo utilizar este argumento para eliminar las apariciones iniciales y finales del car谩cter "E":

# Cadena de texto con caracteres al principio y al final
x <- "EEEOtro TextoEE"

# Eliminar espacios
x <- trimws(x, whitespace = "E")
x
"Otro Texto"

Como ya se ha mencionado, es importante tener en cuenta whitespace puede tomar una expresi贸n regular como entrada. En el siguiente ejemplo, se aplica la funci贸n trimws para eliminar los caracteres num茅ricos (0-9) iniciales y finales de la cadena.

# Cadena de texto con n煤meros al principio y al final
x <- "2352Texto con n煤meros43213"

# Eliminar espacios
x <- trimws(x, whitespace = "[0-9]")
x
"Texto con n煤meros"

Eliminar los espacios al principio

Por defecto, la funci贸n trimws elimina tanto los espacios iniciales como los finales. Sin embargo, el argumento which ofrece la posibilidad de especificar si se eliminan s贸lo los espacios en blanco finales o s贸lo los iniciales. El siguiente ejemplo muestra c贸mo utilizar este argumento para eliminar exclusivamente los espacios iniciales y conservar los finales con which = "left".

# Texto
x <- "   esto es un texto   "

# Eliminar los espacios al principio
x <- trimws(x, which = "left")
x
"esto es un texto   "

Eliminar los espacios al final

Si quieres eliminar los espacios finales, deber谩s especificar which = "right". Esta especificaci贸n indica que s贸lo deben eliminarse los espacios al final de la cadena, dejando intactos los espacios al principio.

# Texto
x <- "   esto es un texto   "

# Eliminar los espacios al final
x <- trimws(x, which = "right")
x
"   esto es un texto"

R version 4.3.2 (2023-10-31 ucrt)