Fügen Sie Zeichenfolgen ohne Leerzeichen in R ein

Jesse John 21 Juni 2023
  1. Entfernen Sie Leerzeichen beim Zusammenführen von Zeichenfolgen in R
  2. Basis-R-Funktionen
  3. Abschluss
Fügen Sie Zeichenfolgen ohne Leerzeichen in R ein

In diesem Artikel werden drei Möglichkeiten zum Entfernen von Leerzeichen beim Zusammenführen (Verketten) von Zeichenfolgen untersucht.

Entfernen Sie Leerzeichen beim Zusammenführen von Zeichenfolgen in R

Wir werden einzelne Strings, Vektoren von Strings und einen Datenrahmen mit Strings für die Demonstrationen verwenden.

Beispielcode:

# The individual strings.
s1 = "The sky"
s2 = "is blue."
s1a = " The sky "
s2a = " is blue. "

# Columns for the data frame.
C1 = c("The sky", " The earth ")
C2 = c("is blue.", " is green. ")
# The data frame.
dtfr = data.frame(Col1=C1, Col2=C2)

Basis-R-Funktionen

Die folgenden R-Basisfunktionen können verwendet werden, um Leerzeichen aus Zeichenfolgen zu entfernen.

Verwenden Sie die Funktion paste() mit sep="", um Leerzeichen zu entfernen

Beim Einfügen von Zeichenfolgen fügt R ein Leerzeichen dazwischen ein. Wir können sep="" benutzen, um das hinzugefügte Leerzeichen zu entfernen.

Bei Vektoren gleicher Länge fügt paste() entsprechende Elemente der Vektoren zusammen. Um alle Ausgabeelemente ohne hinzugefügte Leerzeichen zu einem langen String zusammenzuführen, können wir collapse="" verwenden.

Um Datenrahmenspalten ohne hinzugefügte Leerzeichen zusammenzuführen, verwenden Sie sep="".

Beispielcode:

# MERGE WITH paste()

# Default: adds space.
paste(s1, s2)

# Remove added space.
paste(s1, s2, sep="")

# Does not remove existing spaces.
# Variables s1a and s2a have space characters at the beginning and end.
paste(s1a, s2a, sep="")

# Element-wise merging of vectors.
# No spaces are added in between.
paste(C1, C2, sep="")

# After element-wise merging, we can
# collapse all the elements of the result into a single string.
paste(C1, C2, sep="", collapse="")

# Merge columns of a data frame.
# No spaces are added in between.
dtfr$Mr = paste(dtfr$Col1, dtfr$Col2, sep="")
dtfr

Ausgang:

> # Default: adds space.
> paste(s1, s2)
[1] "The sky is blue."

> # Remove added space.
> paste(s1, s2, sep="")
[1] "The skyis blue."

> # Does not remove existing spaces.
> # Variables s1a and s2a have space characters at the beginning and end.
> paste(s1a, s2a, sep="")
[1] " The sky  is blue. "

> # Element-wise merging of vectors.
> # No spaces are added in between.
> paste(C1, C2, sep="")
[1] "The skyis blue."        " The earth  is green. "

> # After element-wise merging, we can
> # collapse all the elements of the result into a single string.
> paste(C1, C2, sep="", collapse="")
[1] "The skyis blue. The earth  is green. "

> # Merge columns of a data frame.
> # No spaces are added in between.
> dtfr$Mr = paste(dtfr$Col1, dtfr$Col2, sep="")
> dtfr
         Col1        Col2                     Mr
1     The sky    is blue.        The skyis blue.
2  The earth   is green.   The earth  is green.

Verwenden Sie die Funktionen trimws() und paste(), um Leerzeichen zu entfernen

Die Funktion trimws() kann Leerzeichen links, rechts oder auf beiden Seiten eines Strings entfernen. Neben Leerzeichen zählen zu den weiteren Zeichen, die als Leerzeichen gelten, der horizontale Tabulator, der Wagenrücklauf und die Zeichen für neue Zeilen.

Standardmäßig entfernt diese Funktion alle Leerzeichen von beiden Seiten einer Zeichenfolge.

Syntax:

trimws(string, which="side", whitespace="[ \t\r\n]")
# where `side` can be `left` or `right` or `both`

Beispielcode:

# trimws() removes spaces from the left, right or both
trimws(s2a, which="left", whitespace=" ")
trimws(s2a, which="right", whitespace=" ")
trimws(s2a, which="both", whitespace=" ")
# By default, it removes all whitespace from both sides.
s2a
trimws(s2a)

# Remove leading, trailing and added spaces when merging vectors.
paste(trimws(C1), trimws(C2), sep="")

# Remove leading, trailing and added spaces when combining columns of a data frame.
dtfr$Mr2 = paste(trimws(dtfr$Col1), trimws(dtfr$Col2), sep="")
dtfr

Ausgang:

> # trimws() removes spaces from the left, right or both
> trimws(s2a, which="left", whitespace=" ")
[1] "is blue. "
> trimws(s2a, which="right", whitespace=" ")
[1] " is blue."
> trimws(s2a, which="both", whitespace=" ")
[1] "is blue."

> # By default, it removes all whitespace from both sides.
> s2a
[1] " is blue. "
> trimws(s2a)
[1] "is blue."

> # Remove leading, trailing and added spaces when merging vectors.
> paste(trimws(C1), trimws(C2), sep="")
[1] "The skyis blue."    "The earthis green."

> # Remove leading, trailing and added spaces when combining columns of a data frame.
> dtfr$Mr2 = paste(trimws(dtfr$Col1), trimws(dtfr$Col2), sep="")
> dtfr
         Col1        Col2                     Mr                Mr2
1     The sky    is blue.        The skyis blue.    The skyis blue.
2  The earth   is green.   The earth  is green.  The earthis green.

Wir haben zuerst trimws() verwendet, um Leerzeichen auf beiden Seiten von Strings zu entfernen, bevor wir sie mit der Funktion paste() zusammengeführt haben.

Verwenden Sie die Funktionen gsub() und paste(), um Leerzeichen zu entfernen

Syntax:

gsub(Suchen_nach, Ersetzen_durch, Zeichenkette)

Beispielcode:

# For vectors: merge strings and remove all spaces from the result.
gsub(" ", "", paste(C1, C2))

# For data frame: merge string columns of a data frame and remove all spaces.
dtfr$Mr3 = gsub(" ", "", paste(dtfr$Col1, dtfr$Col2))
dtfr

Ausgang:

> # For vectors: merge strings and remove all spaces from the result.
> gsub(" ", "", paste(C1, C2))
[1] "Theskyisblue."    "Theearthisgreen."

> # For data frame: merge string columns of a data frame and remove all spaces.
> dtfr$Mr3 = gsub(" ", "", paste(dtfr$Col1, dtfr$Col2))
> dtfr
         Col1        Col2                     Mr                Mr2              Mr3
1     The sky    is blue.        The skyis blue.    The skyis blue.    Theskyisblue.
2  The earth   is green.   The earth  is green.  The earthis green. Theearthisgreen.

Wir führen die Strings zuerst mit paste() zusammen und entfernen dann alle Leerzeichen mit gsub().

Verwenden Sie das Paket stringr und die Funktion paste(), um Leerzeichen zu entfernen

Syntax:

str_replace_all(string, search_for, replace_with)

Beispielcode:

# Install the stringr package.
# install.packages("stringr")
# Load the stringr package.
library(stringr)

# With vectors.
str_replace_all(paste(C1, C2), " ", "")

# With columns of a data frame.
# We will first recreate the dataframe to improve readability.
dtfr = data.frame(Col1=C1, Col2=C2)

# Use the str_replace_all() function.
dtfr$StrRplAll = str_replace_all(paste(dtfr$Col1, dtfr$Col2), " ", "")
dtfr

Ausgang:

> # Load the stringr package.
> library(stringr)

> # With vectors.
> str_replace_all(paste(C1, C2), " ", "")
[1] "Theskyisblue."    "Theearthisgreen."

> # With columns of a data frame.
> # We will first recreate the dataframe to improve readability.
> dtfr = data.frame(Col1=C1, Col2=C2)

> # Use the str_replace_all() function.
> dtfr$StrRplAll = str_replace_all(paste(dtfr$Col1, dtfr$Col2), " ", "")
> dtfr
         Col1        Col2        StrRplAll
1     The sky    is blue.    Theskyisblue.
2  The earth   is green.  Theearthisgreen.

Das stringr-Paket von Rs tidyverse baut auf dem stringi-Paket auf. Dieses Paket stellt die Funktion str_replace_all() bereit, die der Funktion gsub() ähnelt.

Abschluss

In diesem Artikel wurde gezeigt, wie Sie Folgendes entfernen:

  • Beim Zusammenführen von Strings mit der Funktion paste() werden Leerzeichen hinzugefügt.
  • Führende und nachfolgende Leerzeichen von Zeichenfolgen.
  • Alle Leerzeichen aus einer Zeichenfolge.

Die Funktionen können je nach Bedarf kombiniert/verschachtelt werden, um die gewünschte Ausgabe zu erhalten.

Autor: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.

Verwandter Artikel - R String