Combinando dados com data.table em R
Scott Ritchie
Postdoctoral Researcher in Systems Genomics
Definir chaves evita precisar do argumento on ao fazer joins
data.table em vários joins Ordena o data.table em memória pelas colunas-chave
Várias colunas podem ser definidas e usadas como chaves
As colunas-chave são passadas como argumentos
setkey(DT, ...)
setkey(DT, key1, key2, key3)setkey(DT, "key1", "key2", "key3")
# Para definir todas as colunas de DT como chaves
setkey(DT)
Defina as chaves de ambos os data.tables antes do join
setkey(dt1, dt1_key)
setkey(dt2, dt2_key)
Faça inner, right e left joins:
# Inner join entre dt1 e dt2 dt1[dt2, nomatch = 0]# Right join entre dt1 e dt2 dt1[dt2]# Left join entre dt1 e dt2 dt2[dt1]
As colunas-chave são fornecidas como um vetor de caracteres
keys <- c("key1", "key2", "key3")
setkeyv(dt, keys)
haskey() verifica se você definiu chaves
haskey(dt1)
TRUE
key() retorna as colunas-chave definidas
key(dt1)
"dt1_key"
Quando não há chaves definidas
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
Combinando dados com data.table em R