# R gsub() und sub(): Strings und Zeichen ersetzen

Die Funktionen R `gsub()` und `sub()` können Sie leicht anwenden und mit anderen R-Funktionen kombinieren, um **komplexe Textmanipulationen** durchzuführen. Sie sind nahtlos in Datenanalysen und statistische Berechnungen integrierbar.

## Wozu dienen `gsub()` und `sub()` in R?

R `gsub()` und `sub()` sind Funktionen zum **Ersetzen von Mustern in Zeichenketten**. Die `sub()`-Funktion, kurz für „**substitute**“, ermöglicht, das erste Vorkommen eines bestimmten Musters in einer Zeichenkette zu finden und durch einen anderen Ausdruck auszutauschen. Es handelt sich um eine einmalige Ersetzung. Im Vergleich dazu steht die `gsub()`-Funktion für „**global substitute**“. Diese Methode sucht nach allen Vorkommen eines spezifizierten Musters in einem String und ersetzt sie global durch einen anderen Ausdruck.

Beide Funktionen finden eine breite Anwendung in der Datenbereinigung und -transformation. Ihr Hauptzweck liegt in der Entfernung unerwünschter Muster oder der Anpassung von Textdaten. R `gsub()` und `sub()` spielen dabei eine entscheidende Rolle bei der **Textmanipulation** in statistischen Analysen oder Machine-Learning-Anwendungen in R. Hier können Sie `gsub()` und `sub()` dazu einsetzen, um bestimmte Muster zu extrahieren oder um Daten in einer für die Analyse geeigneten Form zu transformieren.

## Das ist die Syntax von R `gsub()` und `sub()`

Die Syntax der Funktionen `gsub()` und `sub()` in R ist recht ähnlich. Beide Methoden akzeptieren die folgenden Parameter:

- **pattern**: das zu suchende Muster, entweder in Form eines Strings oder regulären Ausdrucks
- **replacement**: der Ausdruck, der das gefundene Muster ersetzen soll
- **x**: Vektor oder Datenrahmen (data frame), in dem die Suche und Ersetzung durchgeführt wird

### Der Aufbau von R `gsub()`

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

### Die grundlegende Syntax von R `sub()`

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

## Praktische Beispiele für R `gsub()`

Die Wahl zwischen `sub()` und `gsub()` hängt von den Anforderungen der Musterersetzung ab. Die Besonderheit von R `gsub()` ist es, **alle Vorkommen** eines Musters zu bestimmen und auszutauschen.

### Leerzeichen entfernen

Sie können mit `gsub()` zum Beispiel überflüssige Leerzeichen in Strings bereinigen.

```R
sentence <- "  Data Science  is  powerful.  "
clean_sentence <- gsub("\\s+", " ", sentence)
cat(clean_sentence)
```

Wir erhalten die Ausgabe:

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

Der reguläre Ausdruck `\\s+` passt auf ein oder mehrere aufeinanderfolgende Leerzeichen, was effektiv Whitespace im Satz aufräumt.

### Telefonnummern ersetzen

R `gsub()` ist praktisch, um sensible Daten wie Telefonnummern zu **anonymisieren** oder zu entfernen.

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

Output:

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

In diesem Beispiel extrahieren wir mit dem regulären Ausdruck `\\d{3}-\\d{3}-\\d{4}` die Telefonnummer und ersetzen alle Zahlen im String `text` durch den Platzhalter `"redacted phone number"`.

## Anwendungsbeispiele für R `sub()`

Wenn Sie nur das **erste Auftreten** eines Musters ersetzen wollen, verwenden Sie `sub()`.

### Ersetzen des ersten Vorkommens von Wörtern

Nehmen wir an, wir haben einen String mit einer Wortwiederholung und wollen das erste Wort austauschen:

```R
text <- "Data Science is powerful. Data Analysis is fun."
result_sub <- sub("Data", "Information", text)
cat(result_sub)
```

Die Ausgabe zeigt uns:

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

R `sub()` durchsucht den Text nach dem Muster `"Data"` und ersetzt nur das erste gefundene Vorkommen durch den angegebenen Ersatztext `"Information"`.

### Ersetzen von Zahlen

Auch mit `sub()` können wir Zahlen ersetzen.

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

Output:

```R
"The cost is $2000. Please pay by 01.02.2024."
```

Der reguläre Ausdruck `\\d+` passt auf eine oder mehr Ziffern, wobei `sub()` nur die ersten zusammenhängenden Zahlen im Text austauscht.

Tipp Weitere Erklärungen zu R-Funktionen wie [R substring](https://www.ionos.at/digitalguide/websites/web-entwicklung/r-substring/) oder [R bind](https://www.ionos.at/digitalguide/websites/web-entwicklung/r-rbind/) können Sie in unserem Digital Guide lesen.


This is a markdown version of: [https://www.ionos.at/digitalguide/websites/web-entwicklung/r-sub-and-gsub/](https://www.ionos.at/digitalguide/websites/web-entwicklung/r-sub-and-gsub/) for AI/LLM consumption.