# O que são e como usar R gsub() e R sub()?

As funções R `gsub()` e R `sub()` são usadas na **manipulação de textos**. Elas são fáceis de usar e podem ser combinadas com outras funções. Você pode integrá-las perfeitamente em análises de dados e em cálculos estatísticos, por exemplo.

## O que fazem as funções R `gsub()` e R `sub()`?

As funções R `gsub()` e R `sub()` **substituem padrões em strings**. A função `sub()`, abreviação de “**substitute**”, localiza a primeira ocorrência de um padrão em uma string e a substitui por outra expressão. Tal função só faz substituições simples. Já `gsub()` é a abreviação de “**global substitute**” e é capaz de localizar todas as ocorrências de um padrão em uma string e substituí-las por outra expressão.

As duas funções têm amplas possibilidades de aplicação em tarefas de limpeza e transformação de dados. Sua principal finalidade é excluir padrões indesejados e adaptar textos. Elas são especialmente importantes na **manipulação de textos** de análises estatísticas e aplicações de aprendizado de máquina (*machine learning*) na linguagem R. Por exemplo, o usuário pode usar essas funções para extrair determinados padrões ou transformar dados no formato necessário para a realização de uma análise.

## Sintaxe de R `gsub()` e R `sub()`

As sintaxes das funções R `gsub()` e R `sub()` são muito parecidas. Os dois métodos usam os seguintes parâmetros:

- **padrão**: O padrão que você procura na forma de uma string ou expressão regular
- **substituto**: A expressão que substituirá o padrão
- **x**: O vetor ou data frame em que a busca e a substituição serão realizadas

### Estrutura de R `gsub()`

```R
gsub(padrão, substituto, x)
```

### Estrutura de R `sub()`

```R
sub(padrão, substituto, x)
```

## Exemplos de uso da função R `gsub()`

A característica que diferencia a função R `gsub()` é a capacidade que ela tem de localizar e substituir **todas as ocorrências** de um padrão.

### Excluir espaços

Você pode usar a função R `gsub()` para remover espaços de sobra em strings.

```R
frase <- "  A ciência   de dados é   poderosa.  "
frase_limpa <- gsub("\\s+", " ", frase)
cat(frase_limpa)
```

O resultado é:

```R
"A ciência de dados é poderosa."
```

A expressão regular `\\s+` corresponde a um ou mais espaços consecutivos. Ao usá-la no exemplo acima, conseguimos remover o excesso de espaços da frase original.

### Substituir números de telefone

A função R `gsub()` também é útil para **anonimizar** ou excluir dados privados, como números de telefone, por exemplo.

```R
texto <- "Entre em contato pelo telefone 123-456-7890 para mais informações."
texto_modificado <- gsub("\\d{3}-\\d{3}-\\d{4}", "número de telefone ocultado", texto)
cat(texto_modificado)
```

Este é o resultado:

```R
"Entre em contato pelo telefone número de telefone ocultado para mais informações."
```

No exemplo acima, extraímos o número de telefone com a expressão regular `\\d{3}-\\d{3}-\\d{4}`. Depois, o substituímos pela string `"número de telefone ocultado"`.

## Exemplos de uso da função R `sub()`

Se você quiser substituir apenas a **primeira ocorrência** de um padrão, pode usar a função R `sub()`.

### Substituir a primeira ocorrência de uma palavra

Imagine que uma string tenha uma palavra repetida e você queira substituir a primeira ocorrência dessa palavra.

```R
texto <- "A ciência de dados é poderosa. A análise de dados é divertida."
resultado_sub <- sub("dados", "redes", texto)
cat(resultado_sub)
```

O resultado seria:

```R
"A ciência de redes é poderosa. A análise de dados é divertida."
```

A função R `sub()` procura pela string `"dados"` no texto e substitui a primeira ocorrência encontrada por `"redes"`.

### Substituir números

Também é possível substituir números com a função R `sub()`. Veja:

```R
texto_numerico <- "O custo é de US$ 100. Pague até 01/02/2024."
resultado <- sub("\\d+", "200", texto_numerico)
cat(resultado)
```

Resultado:

```R
"O custo é de US$ 200. Pague até 01/02/2024."
```

A expressão regular `\\d+` corresponde a um ou mais dígitos. A função R `sub()`, como pode ser observado, substitui apenas o primeiro grupo de dígitos no texto.

Dica Explore outros artigos do nosso Digital Guide para conhecer outras importantes funções em R, como [R substring](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/r-substring/) e [R rbind](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/r-rbind/).


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/r-sub-e-r-gsub/](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/r-sub-e-r-gsub/) for AI/LLM consumption.