더북(TheBook)

key를 사용한 데이터 테이블 병합

key는 여러 데이터 테이블의 병합에도 사용할 수 있다. 예를 들어, DT1, DT2 두 데이터 테이블이 있을 때 DT1[DT2, 표현식]은 DT1에서 DT2에 대응하는 데이터를 찾는 방식으로 데이터를 병합한다. 다음 표를 참고하기 바란다.

표 5-12 데이터 테이블 병합 문법

문법

의미

DT1[DT2, 표현식]

DT1에서 DT2에 해당하는 행들을 찾고 ‘표현식’에 지정한 계산을 수행한다.

DT2[DT1, 표현식]

DT2에서 DT1에 해당하는 행들을 찾고 ‘표현식’에 지정한 계산을 수행한다.

다음 두 데이터 테이블을 가정해보자.

> DT1 <- data.table(x=runif(260000),
+                   y=rep(LETTERS, each=10000))  # LETTERS는 A~Z가 저장된 문자열 벡터
> DT2 <- data.table(y=c("A", "B", "C"), z=c("a", "b", "c"))

DT1[DT2, ]는 DT1으로부터 y 값이 A, B, C인 행을 찾아 병합한다.

> setkey(DT1, y)  # DT1에서의 검색을 빠르게 하기 위한 색인 생성
> DT1[DT2, ]
       y          x z
    1: A 0.36912925 a
    2: A 0.60170742 a
    3: A 0.16972871 a
    4: A 0.27251097 a
    5: A 0.96946385 a
   ---
29996: C 0.66247989 c
29997: C 0.69217630 c
29998: C 0.02152985 c
29999: C 0.60682416 c
30000: C 0.07117150 c
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.