Come risolvere: errore in strsplit(unitspec, ” “): argomento senza carattere


Un errore che potresti riscontrare in R è:

 Error in strsplit(df$my_column, split = "1"): non-character argument 

Questo errore in genere si verifica quando si tenta di utilizzare la funzione strsplit() in R per dividere una stringa, quando l’oggetto con cui si sta lavorando non è una stringa.

Questo tutorial spiega esattamente come correggere questo errore.

Come riprodurre l’errore

Supponiamo di avere il seguente frame di dati in R:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C'),
                 dots=c(91910, 14015, 120215))

#view data frame
df

  team points
1 A 91910
2 B 14015
3 C 120215

Supponiamo ora di provare ad utilizzare la funzione strsplit() per dividere i valori nella colonna “punti” in base a dove appare il numero 1:

 #attempt to split values in points column
strsplit(df$points, split="1")

Error in strsplit(df$points, split = "1"): non-character argument

Riceviamo un errore perché la variabile “punti” non è un carattere.

Possiamo confermarlo controllando la classe di questa variabile:

 #display class of "points" variable
class(df$points)

[1] "digital"

Possiamo vedere che questa variabile ha una classe numerica.

Come correggere l’errore

Il modo per correggere questo errore è utilizzare as.character() per convertire la variabile “points” in un carattere prima di provare a utilizzare la funzione strsplit() :

 #split values in points column based on where 1 appears
strsplit(as. character (df$points), split="1")

[[1]]
[1990"

[[2]]
[1] "" "40" "5" 

[[3]]
[1] "" "202" "5"

Questa volta abbiamo diviso con successo ciascun valore nella colonna “punti” perché prima abbiamo utilizzato la funzione as.character() per convertire i “punti” in un carattere.

Risorse addizionali

I seguenti tutorial spiegano come risolvere altri errori comuni in R:

Come risolvere il problema in R: i nomi non corrispondono ai nomi precedenti
Come risolvere in R: più colonne che nomi di colonna
Come riparare in R: la sostituzione ha X righe, i dati hanno Y

Aggiungi un commento

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