So extrahieren sie eine zeichenfolge zwischen bestimmten zeichen in r


Sie können die folgenden Methoden verwenden, um eine Zeichenfolge zwischen bestimmten Zeichen in R zu extrahieren:

Methode 1: Extrahieren Sie eine Zeichenfolge zwischen bestimmten Zeichen mithilfe von Base R

 gsub(" .*char1 (.+) char2.*", "\\1 ", my_string)

Methode 2: Extrahieren Sie eine Zeichenfolge zwischen bestimmten Zeichen mit stringr

 library (stringr)

str_match(my_string, " char1\\s*(.*?)\\s*char2 ")[,2]

Diese beiden Beispiele extrahieren die Zeichenfolge zwischen char1 und char2 in my_string .

Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit dem folgenden Datenrahmen verwendet wird:

 #create data frame
df <- data. frame (team=c('team Mavs pro', 'team Heat pro', 'team Nets pro'),
                 dots=c(114, 135, 119))

#view data frame
df

           team points
1 Mavs pro team 114
2 team Heat pro 135
3 pro Nets team 119

Beispiel 1: Extrahieren Sie eine Zeichenfolge zwischen bestimmten Zeichen mit Base R

Der folgende Code zeigt, wie die Zeichenfolge zwischen den Team- und Pro -Zeichen für jede Zeile in der Teamspalte des Datenrahmens extrahiert wird:

 #create new column that extracts string between team and pro
df$team_name <- gsub(" .*team (.+) pro.*", "\\1 ", df$team)

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

Beachten Sie, dass die neue Spalte mit dem Namen „team_name“ die Zeichenfolge zwischen den Team- und Pro- Zeichen für jede Zeile in der Teamspalte des Datenrahmens enthält.

Verwandte Themen : Eine Einführung in gsub() in R

Beispiel 2: Extrahieren Sie eine Zeichenfolge zwischen bestimmten Zeichen mit dem Paket stringr

Der folgende Code zeigt, wie die Zeichenfolge zwischen den Team- und Pro- Zeichen für jede Zeile in der Teamspalte des Datenrahmens mithilfe der Funktion str_match() des Pakets stringr in R extrahiert wird:

 library (stringr)

#create new column that extracts string between team and pro
df$team_name <- str_match(df$team, " team\\s*(.*?)\\s*pro ")[,2]

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

Beachten Sie, dass die neue Spalte mit dem Namen „team_name“ die Zeichenfolge zwischen den Team- und Pro- Zeichen für jede Zeile in der Teamspalte des Datenrahmens enthält.

Dies entspricht den Ergebnissen der Verwendung der Funktion gsub() in Basis R.

Beachten Sie, dass die Funktion str_match() eine Matrix zurückgibt, in der die erste Spalte die Originalzeichenfolgen und die zweite Spalte die interessierende Teilzeichenfolge enthält.

Daher müssen wir [,2] verwenden, um nur die zweite Spalte aus der von der Funktion str_match() zurückgegebenen Matrix zu extrahieren.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:

So wählen Sie Spalten aus, die eine bestimmte Zeichenfolge in R enthalten
So entfernen Sie Zeichen aus einer Zeichenfolge in R
So finden Sie die Zeichenposition in einer Zeichenfolge in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert