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
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.