Come estrarre numeri da stringhe in r (con esempi)


È possibile utilizzare i seguenti metodi per estrarre numeri dalle stringhe in R:

Metodo 1: estrai il numero di stringa utilizzando la base R

 as. numeric (gsub(" \\D ", "", df$my_column))

Metodo 2: estrarre il numero di stringa utilizzando il pacchetto readr

 library (readr)

parse_number(df$my_column)

Questo tutorial spiega come utilizzare ciascun metodo nella pratica con il seguente frame di dati:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 position=c('Guard23', 'Guard14', '2Forward',
                            'Guard25', '6Forward', 'Center99'))

#view data frame
df

  team position
1A Guard23
2A Guard14
3 A 2Forward
4 B Guard25
5 B 6Forward
6 B Center99

Esempio 1: estrai il numero da una stringa utilizzando la base R

Il codice seguente mostra come estrarre i numeri da ciascuna stringa nella colonna posizione del frame dati:

 #extract number from each string in 'position' column
as. numeric (gsub(" \\D ", "", df$position))

[1] 23 14 2 25 6 99

Da notare che i valori numerici sono stati estratti da ogni stringa nella colonna posizione .

Nota : la funzione gsub() sostituisce semplicemente tutti i non numeri ( \\D ) in una stringa con uno spazio vuoto. Ciò ha l’effetto di estrarre solo i numeri dalla stringa.

Se lo desideri, puoi anche memorizzare questi valori numerici in una nuova colonna nel data frame:

 #create new column that contains numbers from each string in 'position' column
df$num <- as. numeric (gsub(" \\D ", "", df$position))

#view updated data frame
df

  team position number
1A Guard23 23
2A Guard14 14
3 A 2Forward 2
4 B Guard25 25
5 B 6Forward 6
6 B Center99 99

Esempio 2: estrarre il numero da una stringa utilizzando il pacchetto Reader

Il codice seguente mostra come estrarre i numeri da ciascuna stringa nella colonna posizione del frame di dati utilizzando la funzione parse_number() dal pacchetto readr :

 library (readr)

#extract number from each string in 'position' column
parse_number(df$position)

[1] 23 14 2 25 6 99

Da notare che i valori numerici sono stati estratti da ogni stringa nella colonna posizione .

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

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 *