Hoe op te lossen: fout in fun(newx[, i], …): argumenttype ' (teken)
Een fout die je tegen kunt komen in R is:
Error in sum(x): invalid 'type' (character) of argument
Deze fout treedt op wanneer u probeert een wiskundige bewerking uit te voeren (zoals het nemen van som, gemiddelde, getal, enz.) op een tekenvector.
In deze tutorial wordt uitgelegd hoe u deze fout in de praktijk kunt oplossen.
Hoe de fout te reproduceren
Stel dat we het volgende dataframe in R creëren:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
points=c(10, 12, 15, 20, 26, 25),
rebounds=c(7, 8, 8, 14, 10, 12))
#view data frame
df
team points rebounds
1 to 10 7
2 to 12 8
3 to 15 8
4 B 20 14
5 B 26 10
6 B 25 12
Stel nu dat we proberen de som van de kolom ‘team’ te berekenen:
#attempt to calculate sum of values in 'team' column
sum(df$team)
Error in sum(df$team): invalid 'type' (character) of argument
We ontvangen een foutmelding omdat de kolom ‚team‘ een tekenkolom is.
We kunnen dit bevestigen met behulp van de class() functie:
#view class of 'team' column
class(df$team)
[1] “character”
Hoe u de fout kunt oplossen
De manier om deze fout te omzeilen is door alleen wiskundige bewerkingen met numerieke vectoren te gebruiken.
We zouden bijvoorbeeld de functie sum() kunnen gebruiken om de som van de waarden in de kolom ‚punten‘ te berekenen:
#calculate sum of values in 'points' column
sum(df$points)
[1] 108
We kunnen ook de som van de puntwaarden berekenen, gegroepeerd per team:
#calculate sum of points, grouped by team
aggregate(points ~ team, df, sum)
team points
1 to 37
2 B 71
We kunnen zelfs de som van de punten- en reboundwaarden berekenen, gegroepeerd per team:
#calculate sum of points and sum of rebounds, grouped by team
aggregate(.~team, df, sum)
team points rebounds
1 A 37 23
2 B 71 36
Houd er rekening mee dat we bij geen van deze bewerkingen een foutmelding krijgen, omdat we alleen de som van de numerieke variabelen proberen te berekenen.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in R kunt oplossen:
Oplossing: voorwaarde heeft lengte > 1 en alleen het eerste element wordt gebruikt
Oplossing: niet-numeriek argument van binaire operator
Oplossing: dim(X) moet een positieve lengte hebben
Oplossing: fout bij het selecteren van ongebruikte argumenten