How to Fix Error in R: non-conformable arguments


One error message you may encounter when using R is:

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

This error occurs when you attempt to multiply two matrices but the number of columns in the left matrix does not match the number of rows in the right matrix.

The following example shows how to resolve this error in practice.

How to Reproduce the Error

Suppose we have the following two matrices 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

Now suppose we attempt to multiply the second matrix by the first matrix:

#attempt to multiply second matrix by first matrix
mat2 %*% mat1

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

We receive an error because the number of columns (3) in the left  matrix does not match the number of rows (5) in the right matrix.

How to Avoid the Error

To avoid the non-conformable arguments error, we must instead multiply the first matrix by the second matrix:

multiply first matrix by second matrix
mat1 %*% mat2

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

Notice that we’re able to successfully multiply the two matrices without any error because the number of columns (2) in the left matrix matches the number of rows (2) in the right matrix.

We can also use the dim() function to display the number of columns and rows in each matrix:

#view dimensions of first matrix
dim(mat1)

[1] 5 2

#view dimensions of second matrix
dim(mat2)

[1] 2 3

From this output we can see:

  • The first matrix has 5 rows and 2 columns.
  • The second matrix has 2 rows and 3 columns.

This makes it obvious that we must use the first matrix on the left and the second matrix on the right when multiplying since the first matrix has 2 columns and the second matrix has 2 rows.

Additional Resources

The following tutorials explain how to fix other common errors in R:

How to Fix in R: Arguments imply differing number of rows
How to Fix in R: error in select unused arguments
How to Fix in R: replacement has length zero

Leave a Reply

Your email address will not be published. Required fields are marked *