Come estrarre una stringa tra caratteri specifici in r


È possibile utilizzare i seguenti metodi per estrarre una stringa tra caratteri specifici in R:

Metodo 1: estrae la stringa tra caratteri specifici utilizzando Base R

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

Metodo 2: estrae la stringa tra caratteri specifici utilizzando stringr

 library (stringr)

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

Questi due esempi estraggono la stringa tra char1 e char2 in my_string .

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con il seguente frame di dati:

 #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

Esempio 1: estrarre una stringa tra caratteri specifici utilizzando Base R

Il codice seguente mostra come estrarre la stringa tra i caratteri team e pro per ogni riga nella colonna team del data frame:

 #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

Nota che la nuova colonna chiamata nome_squadra contiene la stringa tra i caratteri squadra e professionista per ogni riga nella colonna squadra del frame dati.

Correlati : un’introduzione a gsub() in R

Esempio 2: estrarre una stringa tra caratteri specifici utilizzando il pacchetto stringr

Il codice seguente mostra come estrarre la stringa tra i caratteri team e pro per ogni riga nella colonna team del frame di dati utilizzando la funzione str_match() del pacchetto stringr in R:

 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

Nota che la nuova colonna chiamata nome_squadra contiene la stringa tra i caratteri squadra e professionista per ogni riga nella colonna squadra del frame dati.

Ciò corrisponde ai risultati dell’utilizzo della funzione gsub() in base R.

Si noti che la funzione str_match() restituisce una matrice in cui la prima colonna contiene le stringhe originali e la seconda colonna contiene la sottostringa di interesse.

Pertanto, dobbiamo utilizzare [,2] per estrarre solo la seconda colonna dalla matrice restituita dalla funzione str_match() .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come selezionare colonne contenenti una stringa specifica in R
Come rimuovere caratteri da una stringa in R
Come trovare la posizione del carattere in una stringa in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *