# 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 <- "  Data Science  is  powerful.  " 
clean_sentence <- gsub("\\s+", " ", sentence) 
cat(clean_sentence)
```

Resultado:

```R
"Data Science is powerful."
```

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 <- "Contact us at 123-456-7890 for more information." 
modified_text <- gsub("\\d{3}-\\d{3}-\\d{4}", "redacted phone number", text) 
cat(modified_text)
```

Resultado:

```R
"Contact us at redacted phone number for more information."
```

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 `"redacted phone number"`.

## 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 <- "Data Science is powerful. Data Analysis is fun." 
result_sub <- sub("Data", "Information", text) 
cat(result_sub)
```

Resultado:

```R
"Information Science is powerful. Data Analysis is fun."
```

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

### Sustituir números

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

```R
numeric_text <- "The cost is $1000. Please pay by 01.02.2024." 
result <- sub("\\d+", "2000", numeric_text) 
cat(result)
```

Resultado:

```R
"The cost is $2000. Please pay by 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.com/es-us/digitalguide/paginas-web/desarrollo-web/r-substring/) o [R rbind](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/r-rbind/).


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