data.tableキーの設定と確認

R で学ぶ data.table によるデータ結合

Scott Ritchie

Postdoctoral Researcher in Systems Genomics

`data.table`キーの設定

キーを設定すると、結合時にon引数が不要になります

  • 同じdata.tableを多くの結合で使用する場合に便利です

メモリ上のdata.tableをキー列でソートします

  • フィルタリングや結合の処理が高速化されます

複数の列をキーとして設定・使用できます

R で学ぶ data.table によるデータ結合

`setkey()`関数

キー列を引数として渡します

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

setkey(DT, "key1", "key2", "key3")
# To set all columns in DT as keys
setkey(DT)
R で学ぶ data.table によるデータ結合

`setkey()`関数

結合前に両方のdata.tableのキーを設定します

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

内部結合・右結合・左結合の実行:

# Inner join dt1 and dt2
dt1[dt2, nomatch = 0] 

# Right join dt1 and dt2 dt1[dt2]
# Left join dt1 and dt2 dt2[dt1]
R で学ぶ data.table によるデータ結合

プログラムによるキーの設定

キー列を文字ベクトルで指定します

keys <- c("key1", "key2", "key3")
setkeyv(dt, keys)
R で学ぶ data.table によるデータ結合

キーの取得

haskey()でキーが設定されているか確認します

haskey(dt1)
TRUE

key()で設定済みのキー列を返します

key(dt1)
"dt1_key"
R で学ぶ data.table によるデータ結合

キーの取得

キーが設定されていない場合

haskey(dt_no_key)
FALSE
key(dt_no_key)
NULL
R で学ぶ data.table によるデータ結合

すべての`data.table`とキーの確認

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
R で学ぶ data.table によるデータ結合

練習しましょう!

R で学ぶ data.table によるデータ結合

Preparing Video For Download...