วิธีแก้ไขข้อผิดพลาดใน 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 มี 2 แถว 3 คอลัมน์
นี่แสดงให้เห็นอย่างชัดเจนว่าเราต้องใช้เมทริกซ์ตัวแรกทางซ้ายและเมทริกซ์ตัวที่สองทางด้านขวาเมื่อทำการคูณ เนื่องจากเมทริกซ์ตัวแรกมี 2 คอลัมน์และเมทริกซ์ตัวที่สองมี 2 แถว
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่น ๆ ใน R:
วิธีแก้ไขในอาร์กิวเมนต์ R: เกี่ยวข้องกับจำนวนบรรทัดที่แตกต่างกัน
วิธีแก้ไขใน R: ข้อผิดพลาดในการเลือกอาร์กิวเมนต์ที่ไม่ได้ใช้
วิธีการซ่อมแซมใน R: การเปลี่ยนมีความยาวเป็นศูนย์