Đặt và xem khóa của data.table

Kết hợp dữ liệu với data.table trong R

Scott Ritchie

Postdoctoral Researcher in Systems Genomics

Đặt khóa cho `data.table`

Đặt khóa giúp bạn không cần đối số on khi thực hiện join

  • Hữu ích khi bạn cần dùng một data.table trong nhiều phép join khác nhau

Sắp xếp data.table trong bộ nhớ theo cột khóa

  • Tăng tốc lọc và join

Có thể đặt và dùng nhiều cột làm khóa

Kết hợp dữ liệu với data.table trong R

Hàm `setkey()`

Truyền các cột khóa làm đối số

setkey(DT, ...)
setkey(DT, key1, key2, key3)

setkey(DT, "key1", "key2", "key3")
# Đặt tất cả cột trong DT làm khóa
setkey(DT)
Kết hợp dữ liệu với data.table trong R

Hàm `setkey()`

Đặt khóa cho cả hai data.table trước khi join

setkey(dt1, dt1_key)
setkey(dt2, dt2_key)

Thực hiện inner, right và left join:

# Inner join dt1 và dt2
dt1[dt2, nomatch = 0] 

# Right join dt1 và dt2 dt1[dt2]
# Left join dt1 và dt2 dt2[dt1]
Kết hợp dữ liệu với data.table trong R

Đặt khóa theo cách lập trình

Cung cấp cột khóa dưới dạng vector ký tự

keys <- c("key1", "key2", "key3")
setkeyv(dt, keys)
Kết hợp dữ liệu với data.table trong R

Lấy thông tin khóa

haskey() kiểm tra bạn đã đặt khóa hay chưa

haskey(dt1)
TRUE

key() trả về các cột khóa đã đặt

key(dt1)
"dt1_key"
Kết hợp dữ liệu với data.table trong R

Lấy thông tin khóa

Khi chưa đặt khóa

haskey(dt_no_key)
FALSE
key(dt_no_key)
NULL
Kết hợp dữ liệu với data.table trong R

Xem tất cả `data.table` và khóa của chúng

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
Kết hợp dữ liệu với data.table trong R

Cùng luyện tập nào!

Kết hợp dữ liệu với data.table trong R

Preparing Video For Download...