การ Join ข้อมูลด้วย data.table ใน R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics
การกำหนด key ช่วยให้ไม่ต้องใช้อาร์กิวเมนต์ on เวลา join
data.table ใน join หลายครั้งจัดเรียง data.table ในหน่วยความจำตามคอลัมน์ key
สามารถกำหนดหลายคอลัมน์เป็น key ได้
ส่งคอลัมน์ key เป็นอาร์กิวเมนต์
setkey(DT, ...)
setkey(DT, key1, key2, key3)setkey(DT, "key1", "key2", "key3")
# To set all columns in DT as keys
setkey(DT)
กำหนด key ให้ data.table ทั้งสองก่อน join
setkey(dt1, dt1_key)
setkey(dt2, dt2_key)
ทำ inner, right และ left join:
# Inner join dt1 and dt2 dt1[dt2, nomatch = 0]# Right join dt1 and dt2 dt1[dt2]# Left join dt1 and dt2 dt2[dt1]
ส่งคอลัมน์ key เป็น character vector
keys <- c("key1", "key2", "key3")
setkeyv(dt, keys)
haskey() ตรวจสอบว่ามีการกำหนด key หรือไม่
haskey(dt1)
TRUE
key() คืนค่าคอลัมน์ key ที่กำหนดไว้
key(dt1)
"dt1_key"
เมื่อยังไม่ได้กำหนด key
haskey(dt_no_key)
FALSE
key(dt_no_key)
NULL
tables()
NAME NROW NCOL MB COLS KEY
[1,] dt 3 4 1 key1,key2,key3,value key1,key2,key3
[2,] dt1 1,000 3 1 dt1_key_column,value,group dt1_key
[3,] dt2 1,000 2 1 dt2_key_column,time dt2_key
[4,] dt_no_key 5 2 1 id,color
Total: 4MB
การ Join ข้อมูลด้วย data.table ใน R