Як виправити помилку в 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: заміна має нульову довжину