# 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

```R
gsub(pattern, replacement, x)
```

### Sintaxis de la función `sub()` de R

```R
sub(pattern, replacement, x)
```

## 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:

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

Resultado:

```R
"La ciencia de datos es poderosa."
```

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.

```R
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)
```

Resultado:

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

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í:

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

Resultado:

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

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.

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

Resultado:

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

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](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/r-substring/) o [R rbind](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/r-rbind/).


This is a markdown version of: [https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/sub-y-gsub-en-r/](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/sub-y-gsub-en-r/) for AI/LLM consumption.