Come correggere un errore in r: argomenti non conformi


Un messaggio di errore che potresti riscontrare quando usi R è:

 Error in matrix2 %*% matrix1: non-conformable arguments

Questo errore si verifica quando si tenta di moltiplicare due matrici ma il numero di colonne nella matrice di sinistra non corrisponde al numero di righe nella matrice di destra.

L’esempio seguente mostra come risolvere questo errore nella pratica.

Come riprodurre l’errore

Supponiamo di avere le seguenti due matrici in R:

 #create first matrix
mat1 <- matrix(1:10, nrow= 5 ) 

mat1

     [,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10

#create second matrix
mat2 <- matrix(1:6, nrow= 2 )

mat2

     [,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6

Supponiamo ora di provare a moltiplicare la seconda matrice per la prima matrice:

 #attempt to multiply second matrix by first matrix
mate2 %*% mate1

Error in mat2 %*% mat1: non-conformable arguments

Riceviamo un errore perché il numero di colonne (3) nella matrice di sinistra non corrisponde al numero di righe (5) nella matrice di destra.

Come evitare l’errore

Per evitare l’errore di argomenti non conformi , bisogna invece moltiplicare la prima matrice per la seconda matrice:

 multiply first matrix by second matrix
mate1 %*% mate2

     [,1] [,2] [,3]
[1,] 13 27 41
[2,] 16 34 52
[3,] 19 41 63
[4,] 22 48 74
[5,] 25 55 85

Nota che siamo in grado di moltiplicare con successo entrambe le matrici senza errori perché il numero di colonne (2) nella matrice di sinistra corrisponde al numero di righe (2) nella matrice di destra.

Possiamo anche usare la funzione dim() per visualizzare il numero di colonne e righe in ciascuna matrice:

 #view dimensions of first matrix
dim(mat1)

[1] 5 2

#view dimensions of second matrix
dim(mat2)

[1] 2 3

Da questo output possiamo vedere:

  • La prima matrice ha 5 righe e 2 colonne.
  • La seconda matrice ha 2 righe e 3 colonne.

Ciò mostra chiaramente che dobbiamo usare la prima matrice a sinistra e la seconda matrice a destra quando moltiplichiamo poiché la prima matrice ha 2 colonne e la seconda matrice ha 2 righe.

Risorse addizionali

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

Come risolvere in R: gli argomenti coinvolgono un numero diverso di righe
Come risolvere in R: errore nella selezione di argomenti inutilizzati
Come riparare in R: la sostituzione ha lunghezza zero

Aggiungi un commento

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