R의 오류를 수정하는 방법: 비준수 인수
R을 사용할 때 발생할 수 있는 오류 메시지는 다음과 같습니다.
Error in matrix2 %*% matrix1: non-conformable arguments
이 오류는 두 행렬을 곱하려고 시도했지만 왼쪽 행렬의 열 수가 오른쪽 행렬의 행 수와 일치하지 않을 때 발생합니다.
다음 예에서는 실제로 이 오류를 해결하는 방법을 보여줍니다.
오류를 재현하는 방법
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
이제 두 번째 행렬에 첫 번째 행렬을 곱한다고 가정해 보겠습니다.
#attempt to multiply second matrix by first matrix
mate2 %*% mate1
Error in mat2 %*% mat1: non-conformable arguments
왼쪽 행렬의 열 수(3)가 오른쪽 행렬의 행 수(5)와 일치하지 않기 때문에 오류가 발생합니다.
오류를 피하는 방법
일치하지 않는 인수의 오류를 방지하려면 대신 첫 번째 행렬에 두 번째 행렬을 곱해야 합니다.
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
왼쪽 행렬의 열 수 (2)가 오른쪽 행렬의 행 수(2)와 일치하기 때문에 오류 없이 두 행렬을 성공적으로 곱할 수 있습니다.
또한, Dim() 함수를 사용하여 각 행렬의 열과 행 수를 표시할 수도 있습니다.
#view dimensions of first matrix
dim(mat1)
[1] 5 2
#view dimensions of second matrix
dim(mat2)
[1] 2 3
이 출력에서 다음을 확인할 수 있습니다.
- 첫 번째 행렬에는 5개의 행과 2개의 열이 있습니다.
- 두 번째 행렬에는 2개의 행과 3개의 열이 있습니다.
이는 첫 번째 행렬에 2개의 열이 있고 두 번째 행렬에 2개의 행이 있으므로 곱셈을 할 때 왼쪽의 첫 번째 행렬과 오른쪽의 두 번째 행렬을 사용해야 함을 명확하게 보여줍니다.
추가 리소스
다음 튜토리얼에서는 R의 다른 일반적인 오류를 수정하는 방법을 설명합니다.
R에서 수정하는 방법: 인수에 다른 줄 수가 포함됩니다.
R에서 수정하는 방법: 사용하지 않는 인수를 선택하는 중 오류가 발생했습니다.
R에서 복구하는 방법: 교체 길이가 0입니다.