Îmbinarea datelor cu data.table în R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics
Setarea cheilor elimină nevoia argumentului on la joinuri
data.table este folosit în mai multe joinuriSortează data.table în memorie după coloana cheie
Pot fi setate mai multe coloane ca chei
Coloanele cheie sunt transmise ca argumente
setkey(DT, ...)
setkey(DT, key1, key2, key3)setkey(DT, "key1", "key2", "key3")
# To set all columns in DT as keys
setkey(DT)
Setați cheile ambelor data.tables înainte de join
setkey(dt1, dt1_key)
setkey(dt2, dt2_key)
Executați un join intern, dreapta și stânga:
# Inner join dt1 and dt2 dt1[dt2, nomatch = 0]# Right join dt1 and dt2 dt1[dt2]# Left join dt1 and dt2 dt2[dt1]
Coloanele cheie sunt furnizate ca vector de caractere
keys <- c("key1", "key2", "key3")
setkeyv(dt, keys)
haskey() verifică dacă au fost setate chei
haskey(dt1)
TRUE
key() returnează coloanele cheie setate
key(dt1)
"dt1_key"
Când nu sunt setate chei
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
Îmbinarea datelor cu data.table în R