Come risolvere: errore in fun(newx[, i], …): tipo di argomento ' (carattere)


Un errore che potresti riscontrare in R è:

 Error in sum(x): invalid 'type' (character) of argument

Questo errore si verifica quando si tenta di eseguire un’operazione matematica (come somma, media, numero, ecc.) su un vettore di caratteri.

Questo tutorial spiega come risolvere questo errore nella pratica.

Come riprodurre l’errore

Supponiamo di creare il seguente frame di dati in R:

 #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

Supponiamo ora di provare a calcolare la somma della colonna “team”:

 #attempt to calculate sum of values in 'team' column
sum(df$team)

Error in sum(df$team): invalid 'type' (character) of argument

Riceviamo un errore perché la colonna “team” è una colonna di caratteri.

Possiamo confermarlo utilizzando la funzione class() :

 #view class of 'team' column
class(df$team)

[1] “character”

Come correggere l’errore

Il modo per aggirare questo errore è utilizzare solo operazioni matematiche con vettori numerici.

Ad esempio, potremmo utilizzare la funzione sum() per calcolare la somma dei valori nella colonna ‘punti’:

 #calculate sum of values in 'points' column
sum(df$points)

[1] 108

Potremmo anche calcolare la somma dei valori dei punti, raggruppati per squadra:

 #calculate sum of points, grouped by team
aggregate(points ~ team, df, sum)

  team points
1 to 37
2 B 71

Potremmo anche calcolare la somma dei valori dei punti e dei rimbalzi, raggruppati per squadra:

 #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

Tieni presente che non riceviamo un errore con nessuna di queste operazioni perché stiamo solo cercando di calcolare la somma delle variabili numeriche.

Risorse addizionali

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

Come risolvere il problema: la condizione ha lunghezza > 1 e verrà utilizzato solo il primo elemento
Come risolvere: argomento non numerico dell’operatore binario
Come risolvere il problema: dim(X) deve avere una lunghezza positiva
Come risolvere: errore nella selezione degli argomenti non utilizzati

Aggiungi un commento

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