Jak naprawić błąd w r: niezgodne argumenty
Komunikat o błędzie, który możesz napotkać podczas korzystania z R, to:
Error in matrix2 %*% matrix1: non-conformable arguments
Ten błąd występuje, gdy próbujesz pomnożyć dwie macierze, ale liczba kolumn w lewej macierzy nie odpowiada liczbie wierszy w prawej macierzy.
Poniższy przykład pokazuje, jak w praktyce rozwiązać ten błąd.
Jak odtworzyć błąd
Załóżmy, że w R mamy następujące dwie macierze:
#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
Załóżmy teraz, że próbujemy pomnożyć drugą macierz przez pierwszą macierz:
#attempt to multiply second matrix by first matrix
mate2 %*% mate1
Error in mat2 %*% mat1: non-conformable arguments
Otrzymujemy błąd, ponieważ liczba kolumn (3) w lewej macierzy nie odpowiada liczbie wierszy (5) w prawej macierzy.
Jak uniknąć błędu
Aby uniknąć błędu w postaci niezgodnych argumentów , należy zamiast tego pomnożyć pierwszą macierz przez drugą macierz:
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
Należy zauważyć, że obie macierze jesteśmy w stanie pomyślnie pomnożyć bez błędów, ponieważ liczba kolumn (2) w lewej macierzy odpowiada liczbie wierszy (2) w prawej macierzy.
Możemy również użyć funkcji dim() do wyświetlenia liczby kolumn i wierszy w każdej macierzy:
#view dimensions of first matrix
dim(mat1)
[1] 5 2
#view dimensions of second matrix
dim(mat2)
[1] 2 3
Z tego wyniku możemy zobaczyć:
- Pierwsza macierz ma 5 wierszy i 2 kolumny.
- Druga macierz ma 2 wiersze i 3 kolumny.
To wyraźnie pokazuje, że podczas mnożenia musimy użyć pierwszej macierzy po lewej stronie i drugiej macierzy po prawej stronie, ponieważ pierwsza macierz ma 2 kolumny, a druga macierz ma 2 wiersze.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w R:
Jak naprawić w R: argumenty obejmują różną liczbę linii
Jak naprawić w R: błąd w wyborze nieużywanych argumentów
Jak naprawić w R: wymiana ma zerową długość