R のエラーを修正する方法: 非準拠の引数


R の使用時に発生する可能性のあるエラー メッセージは次のとおりです。

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

このエラーは、2 つの行列を乗算しようとしたときに、左側の行列の数が右側の行列の数と一致しない場合に発生します。

次の例は、このエラーを実際に解決する方法を示しています。

エラーを再現する方法

R に次の 2 つの行列があるとします。

 #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

ここで、2 番目の行列と最初の行列を乗算しようとするとします。

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

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

左側の行列の列数 (3) が右側の行列の行数 (5) と一致しないため、エラーが発生します。

エラーを回避する方法

不適合な引数のエラーを回避するには、代わりに最初の行列と 2 番目の行列を乗算する必要があります。

 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

この出力から次のことがわかります。

  • 最初の行列には52列があります。
  • 2 番目の行列には23列があります。

これは、最初の行列には 2 列があり、 2番目の行列には 2 行があるため、乗算するときに左側の最初の行列と右側の2番目の行列を使用する必要があることを明確に示しています。

追加リソース

次のチュートリアルでは、R の他の一般的なエラーを修正する方法について説明します。

R での修正方法: 引数に異なる行数が含まれる
R での修正方法: 未使用の引数を選択する際のエラー
R での修復方法: 置換の長さはゼロです

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です