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