Kết hợp dữ liệu với data.table trong R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics
Đặt khóa giúp bạn không cần đối số on khi thực hiện join
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
Có thể đặt và dùng nhiều cột làm khóa
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)
Đặ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]
Cung cấp cột khóa dưới dạng vector ký tự
keys <- c("key1", "key2", "key3")
setkeyv(dt, keys)
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"
Khi chưa đặt khóa
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
Kết hợp dữ liệu với data.table trong R