วิธีแปลงรายการเป็นเมทริกซ์ใน r (พร้อมตัวอย่าง)


คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแปลงรายการเป็นเมทริกซ์ใน R:

 #convert list to matrix (by row)
matrix(unlist(my_list), ncol= 3 , byrow= TRUE )

#convert list to matrix (by column)
matrix(unlist(my_list), ncol= 3 )

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่างที่ 1: แปลงรายการเป็นเมทริกซ์ (ตามแถว)

รหัสต่อไปนี้แสดงวิธีการแปลงรายการเป็นเมทริกซ์ (ตามแถว) ใน R:

 #create list
my_list <- list(1:3, 4:6, 7:9, 10:12, 13:15)

#view list
my_list

[[1]]
[1] 1 2 3

[[2]]
[1] 4 5 6

[[3]]
[1] 7 8 9

[[4]]
[1] 10 11 12

[[5]]
[1] 13 14 15

#convert list to matrix
matrix(unlist(my_list), ncol= 3 , byrow= TRUE )

     [,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
[4,] 10 11 12
[5,] 13 14 15

ผลลัพธ์คือเมทริกซ์ที่มี 5 แถวและ 3 คอลัมน์

ตัวอย่างที่ 2: แปลงรายการเป็นเมทริกซ์ (ตามคอลัมน์)

รหัสต่อไปนี้แสดงวิธีการแปลงรายการเป็นเมทริกซ์ (ตามคอลัมน์) ใน R:

 #create list
my_list <- list(1:5, 6:10, 11:15)

#view list
my_list

[[1]]
[1] 1 2 3 4 5

[[2]]
[1] 6 7 8 9 10

[[3]]
[1] 11 12 13 14 15

#convert list to matrix
matrix(unlist(my_list), ncol= 3 )

     [,1] [,2] [,3]
[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15

ผลลัพธ์คือเมทริกซ์ที่มี 5 แถวและ 3 คอลัมน์

ข้อควรระวังในการแปลงรายการเป็นอาร์เรย์

โปรดทราบว่า R จะส่งข้อผิดพลาดหากคุณพยายามแปลงรายการเป็นเมทริกซ์โดยที่แต่ละตำแหน่งในรายการมีจำนวนองค์ประกอบไม่เท่ากัน

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงประเด็นนี้:

 #create list
my_list <- list(1:5, 6:10, 11:13)

#view list
my_list

[[1]]
[1] 1 2 3 4 5

[[2]]
[1] 6 7 8 9 10

[[3]]
[1] 11 12 13

#attempt to convert list to matrix
matrix(unlist(my_list), ncol= 3 )

Warning message:
In matrix(unlist(my_list), ncol = 3):
  data length [13] is not a sub-multiple or multiple of the number of rows [5]

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการแปลงไฟล์ทั่วไปอื่นๆ ใน R:

วิธีแปลงรายการเป็นเวกเตอร์ใน R
วิธีแปลงเมทริกซ์เป็นเวกเตอร์ใน R
วิธีแปลงคอลัมน์ data frame เป็น vector ใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *