Как исправить ошибку в 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: замена имеет нулевую длину