gsub() y sub() en R: sustituir cadenas y caracteres

Las funciones gsub() y sub() de R se pueden combinar fácilmente con otras funciones de R para llevar a cabo manipulaciones complejas de texto. Se utilizan en análisis de datos y cálculos estadísticos.

¿Para qué se utilizan gsub() y sub() en R?

En R, las funciones gsub() y sub() sirven para sustituir patrones en cadenas de caracteres. La función sub(), abreviatura de “substitute”, busca y sustituye la primera aparición de un patrón determinado en una cadena por otra expresión. Se trata de una sustitución que se realiza una sola vez. En cambio, la función gsub(), que significa “global substitute”, busca y sustituye todas las apariciones de un patrón en un string (cadena de caracteres) por otra expresión.

Ambas funciones son cruciales para la limpieza y transformación de datos. Su propósito principal es eliminar patrones no deseados o ajustar datos de texto para su análisis. En R, gsub() y sub() desempeñan un papel crucial en la manipulación de texto para análisis estadísticos o aplicaciones de aprendizaje automático. Puedes utilizar gsub() y sub() para extraer patrones específicos o transformar datos a un formato adecuado para ser analizado.

Esta es la sintaxis de gsub() y sub() en R

La sintaxis de las funciones gsub() y sub() en R es bastante similar, ambos admiten los siguientes parámetros:

  • pattern: el patrón a buscar, ya sea en forma de string o expresión regular
  • replacement: la expresión que sustituirá el patrón encontrado
  • x: vector o marco de datos (data frame) en el cual se realizará la búsqueda y modificación

Sintaxis de la función gsub() en R

gsub(pattern, replacement, x)
R

Sintaxis de la función sub() de R

sub(pattern, replacement, x)
R

Ejemplos prácticos de gsub() en R

La elección entre sub() o gsub() depende de cuántas veces necesites reemplazar un patrón. La particularidad de gsub() en R es que sustituye todas las veces que aparece un patrón.

Eliminar los espacios en blanco

Puedes utilizar gsub() para eliminar espacios innecesarios en strings, como en este ejemplo:

sentence <- "  La ciencia de datos es poderosa.  "
clean_sentence <- gsub("\\s+", " ", sentence)
cat(clean_sentence)
R

Resultado:

"La ciencia de datos es poderosa."
R

La expresión regular \\s+ identifica uno o más espacios consecutivos y los elimina de la frase.

Sustituir números de teléfono

gsub() en R es útil para anonimizar o eliminar información sensible como números de teléfono.

text <- "Contacta con nosotros en el 912-34-56-78 para más información."
modified_text <- gsub("\\d{3}-\\d{3}-\\d{4}", "número de teléfono eliminado", text)
cat(modified_text)
R

Resultado:

"Contacta con nosotros en el número de teléfono eliminado para obtener más información."
R

En este caso, la expresión regular \\d{3}-\\d{3}-\\d{4} identifica números de teléfono del string text y sustituye todos sus dígitos por el marcador de posición "número de teléfono eliminado".

Ejemplos de uso de sub() en R

Si solo necesitas sustituir la primera aparición de un patrón, utiliza sub().

Sustituir la primera vez que aparece una palabra

Si tienes un string con una palabra repetida y solo quieres cambiar la primera, hazlo así:

text <- "La ciencia de datos es poderosa. El análisis de datos es divertido."
result_sub <- sub("datos", "información", text)
cat(result_sub)
R

Resultado:

"La ciencia de información es poderosa. El análisis de datos es divertido."
R

La función sub() de R busca en el texto el patrón "datos" y lo reemplaza por "información" solamente la primera vez que aparece.

Sustituir números

También puedes utilizar sub() para cambiar números.

numeric_text <- "El coste es de 1000 €. Por favor, paga antes del 01.02.2024."
result <- sub("\\d+", "2000", numeric_text)
cat(result)
R

Resultado:

"El coste es de 2000 €. Por favor, paga antes del 01.02.2024."
R

La expresión regular \\d+ identifica el primer conjunto de cifras, que sub() cambia por "2000".

Consejo

En nuestra Digital Guide puedes encontrar más explicaciones sobre funciones como R substring o R rbind.

Hosting
El hosting como nunca lo habías visto
  • Rápido, seguro, flexible y escalable
  • Certificado SSL/DDoS incluido
  • Dominio y asesor personal incluidos
¿Le ha resultado útil este artículo?
Page top