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.