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입니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다