วิธีใช้ rbindlist ใน r เพื่อสร้างตารางข้อมูลจากหลายรายการ
ฟังก์ชัน rbindlist() ใน R สามารถใช้เพื่อสร้าง data.table จากรายการวัตถุ data.table หรือ data.frame จำนวนมาก
ฟังก์ชันนี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:
rbindlist(l, use. names ="check", fill= FALSE , idcol= NULL )
ทอง:
- l : รายการที่มีวัตถุ data.table, data.frame หรือรายการ
- use.names : TRUE ผูกตามชื่อคอลัมน์ FALSE ผูกตามตำแหน่ง
- fill : TRUE เติมค่าที่หายไปด้วย NA
- idcol : สร้างคอลัมน์เพื่อระบุว่าแถวเหล่านี้มาจากรายการใด
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ตัวอย่าง: ใช้ rbindlist เพื่อสร้างตารางข้อมูล
สมมติว่าเรามีรายการวัตถุ data.table และ data.frame ใน R ต่อไปนี้:
library (data.table) #create data frames and data tables data1 <- data. table (team=c('A', 'B', 'C'), dots=c(22, 27, 38)) data2 <- data. table (team=c('D', 'E', 'F'), dots=c(22, 14, 20)) data3 <- data. frame (team=c('G', 'H', 'I'), dots=c(11, 15, 18)) #view data frames and data tables print (data1) print (data2) print (data3) team points 1: At 22 2:B27 3: C 38 team points 1:D22 2:E14 3:F20 team points 1 G 11 2:15 a.m. 3 I 18
เราสามารถใช้ฟังก์ชัน rbindlist() ต่อไปนี้เพื่อผูกรายการวัตถุ data.table และ data.frame ไว้ใน data.table เดียว:
#define list of objects to bind together data_list <- list(data1, data2, data3) #bind together list of objects big_data <- rbindlist(data_list) #view result big_data team points 1: At 22 2:B27 3: C 38 4:D22 5:E14 6:F20 7:G 11 8:15 a.m. 9: I 18
ผลลัพธ์ที่ได้คือวัตถุ data.table ที่มีเก้าแถวประกอบด้วยแถวจากรายการวัตถุที่เราให้ไว้
นอกจากนี้เรายังสามารถใช้ฟังก์ชัน class() เพื่อตรวจสอบว่าผลลัพธ์เป็นวัตถุ data.table จริงหรือไม่:
#view class of resulting object
class(big_data)
[1] "data.table" "data.frame"
เราเห็นว่า ผลลัพธ์นั้นเป็นวัตถุ data.table จริงๆ
ข้อดีของการใช้ rbindlist
ทางเลือกอื่นนอกเหนือจากการใช้ rbindlist คือการใช้ do.call กับฟังก์ชัน rbind ในฐาน R:
#use rbind to bind together list of objects do. call (" rbind ", data_list) team points 1: At 22 2:B27 3: C 38 4:D22 5:E14 6:F20 7:G 11 8:15 a.m. 9: I 18
โค้ดนี้ให้ผลลัพธ์เดียวกัน แต่ปรากฎว่า rbindlist เร็วกว่ามาก โดยเฉพาะอย่างยิ่งสำหรับวัตถุ data.table หรือ data.frame ที่มีขนาดใหญ่มาก
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน R:
วิธีแปลงตารางเป็น data frame ใน R
วิธีเพิ่มแถวใน data frame ใน R
วิธีแยก data frame ใน R