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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *