Come risolvere in r: errore in aggregate.data.frame(): gli argomenti devono avere la stessa lunghezza


Un errore che potresti riscontrare in R è:

 Error in aggregate.data.frame(as.data.frame(x), ...): 
  arguments must have same length 

Questo errore si verifica quando si tenta di utilizzare la funzione Aggregate() per riepilogare i valori in una o più colonne di un frame di dati in R ma non si riesce a specificare il nome del frame di dati quando si fa riferimento alle colonne.

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', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C'),
                 points=c(5, 9, 12, 14, 14, 13, 10, 6, 15, 18))

#view data frame
df

   team points
1 to 5
2 to 9
3 to 12
4 to 14
5 to 14
6 B 13
7 B 10
8 B 6
9 C 15
10 C 18

Supponiamo ora di provare a utilizzare la funzione Aggregate() per calcolare il valore del punto medio, raggruppato per squadra :

 #attempt to calculate mean points value by team
aggregate(df$points, list(' team '), FUN=mean)

Error in aggregate.data.frame(as.data.frame(x), ...): 
  arguments must have same length

Riceviamo un errore perché non siamo riusciti a specificare il nome del blocco dati nell’argomento list() .

Come correggere l’errore

Il modo per correggere questo errore è utilizzare semplicemente df$team anziché semplicemente “team” nell’argomento list() :

 #calculate mean points value by team
aggregate(df$points, list(df$team), FUN=mean)

  Group.1 x
1 A 10.800000
2 B 9.666667
3 C 16.500000

Tieni presente che questa volta non riceviamo alcun errore perché abbiamo specificato il nome del frame di dati nell’argomento list() .

Tieni presente che se utilizzi più nomi di colonna nell’argomento list() , dovrai specificare il nome del frame di dati per ciascun nome di colonna, altrimenti riceverai un errore.

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: la lunghezza di un oggetto più lungo non è un multiplo della lunghezza di un oggetto più corto
Come risolvere in R: i contrasti possono essere applicati solo a fattori con 2 o più livelli

Aggiungi un commento

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