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...