더북(TheBook)

key를 사용한 빠른 데이터 접근

데이터 프레임에서 특정 컬럼에 특정 값이 들어 있는 행을 찾는 작업은 모든 행의 값을 하나하나 검토하는 방식으로 이루어진다. 따라서 데이터양이 많고 데이터 검색 작업의 횟수가 많다면 긴 수행 시간이 걸린다. 데이터 테이블을 사용한다면 이런 경우 값에 대한 색인을 이진 탐색 트리Binary Search Tree로 미리 생성해둘 수 있다. 따라서 데이터 검색 작업의 횟수가 많을 경우 데이터 테이블이 데이터 프레임에 비해 빠른 속도로 동작한다. 데이터 테이블의 색인 생성을 위한 함수를 다음 표에 정리했다.

표 5-11 데이터 테이블 색인

data.table::setkey : 데이터 테이블에 키를 생성한다.

data.table.setkey(
  x,  # 데이터 테이블
  ... # 정렬할 컬럼 이름들. 이 컬럼들이 키가 된다.
)

키를 만든 후 X[J(…), 표현식] 문법을 사용하면 …에 지정한 값을 키로 가지는 행들을 찾는다. ‘표현식’에 아무것도 적지 않으면 데이터 테이블의 컬럼들이 그대로 반환되고, 표현식에 연산을 적으면 그 결과가 반환된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.