2011-12-06 5 views
2

두 개의 $ start 및 $ end 행을 기반으로 행을 효율적으로 여러 번 조회해야하는 큰 R 데이터 프레임이 있습니다. 나는 일반적인 솔루션은 O (N) 인 것을 상상 :DataFrame 열의 효율적인 값 조회

data[data$start <= start & data$end >= end, 1] 

내가 열 중 하나 이상을 정렬하고보다 효율적인 O (로그 (N)) 조회를 수행하는 것을 선호합니다. 조회를 위해 데이터 프레임에서 정렬을 이용하려면 어떤 inbuilt R 메소드가 있습니까?

+4

'data.table' 패키지를 사용해 볼 수 있습니다 – James

+4

실제로 느린가? 얼마나 많은 데이터가 있습니까? – hadley

+2

인덱스 검색 및 하위 집합은 일반적으로 코드 병목 현상이되지 않을 정도로 빠르기 때문에 타이밍이있는 재현 가능한 예제를 제공하는 것이 유용합니다. –

답변

5

나는 이것이 오래된 질문이라는 것을 알고 있습니다. R에서 빠른 검색을 원하는 사람들을위한 링크를 제공하고 싶습니다.

Lookup performance in R - Joseph Adler. 나는 그것이 나의 필요를 위해 아주 포괄적 인 것을 안다. 그는 이중 대괄호 표기법 ([[)을 주장하고 여러 대안에 대한 시간 비교를 제공합니다.

+0

데이터 프레임에서 [[? – pldimitrov