Oplossing: fout in strsplit(unitspec, ” “): argument zonder karakter


Een fout die je tegen kunt komen in R is:

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

Deze fout treedt meestal op wanneer u de functie strsplit() in R probeert te gebruiken om een string te splitsen, terwijl het object waarmee u werkt geen string is.

In deze tutorial wordt precies uitgelegd hoe u deze fout kunt oplossen.

Hoe de fout te reproduceren

Stel dat we het volgende dataframe in R hebben:

 #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

Stel nu dat we de functie strsplit() proberen te gebruiken om de waarden in de kolom „punten“ te splitsen op basis van waar het getal 1 verschijnt:

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

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

We ontvangen een foutmelding omdat de variabele „punten“ geen teken is.

We kunnen dit bevestigen door de klasse van deze variabele te controleren:

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

[1] "digital"

We kunnen zien dat deze variabele een numerieke klasse heeft.

Hoe u de fout kunt oplossen

De manier om deze fout op te lossen is door as.character() te gebruiken om de variabele „points“ naar een teken te converteren voordat je de functie strsplit() probeert te gebruiken:

 #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"

Deze keer hebben we met succes elke waarde in de kolom “punten” gesplitst, omdat we eerst de functie as.character() hebben gebruikt om de “punten” naar een teken te converteren.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in R kunt oplossen:

Oplossing in R: namen komen niet overeen met eerdere namen
Hoe op te lossen in R: meer kolommen dan kolomnamen
Hoe te repareren in R: vervanging heeft X-rijen, gegevens hebben Y

Einen Kommentar hinzufügen

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