2016-07-05 2 views
-1

여러 테이블/data.frames를 결합하는 가장 빠르고 가장 빠른 방법은 중복 행을 원하지 않는다는 것입니다.중복 행없이 테이블/데이터 프레임을 결합하는 빠른 방법

수천만 개의 항목이있는 파일이 있지만 파일간에 중복이있을 수 있습니다.

File A 
IDNum   Name   Time 
123   Light  12:30 
234   Lind   12:30 
123   Light  1:00 

File B 
IDNum   Name   Time 
123   Light  1:00 
123   Light  12:30 
234   Lind   12:30 

File C 
IDNum  Name   Time 
666   Ryuk   2:00 
123   Light   NA 

Desired Output 
IDNum  Name   Time 
123   Light   NA 
123   Light   12:30 
123   Light   1:00 
234   Lind   12:30 
666   Ryuk   2:00 

I 병합/조인이 사용하는 다양한 방법을 할 수있는 방법은 여러가지가 알고 있지만 빠른 구체적인 방법이? 몇백 만 개의 행과 수백 개의 파일이 있습니다. 알 수 없거나 많은 양의 중복이 있습니다.

+1

[필수 읽기. (http://stackoverflow.com/a/24376207/4497050) 목록은 하나 data.frame,'do.call에 (rbind, ...)','dplyr : : bind_rows' 또는'data.table :: rbindlist'를 사용하십시오. – alistaire

+0

rbindlist가 이미 해결책으로 제시되었습니다. 그래서, 당신은 그것을 사용할 수 있습니다. – akrun

답변

0

우리는 list의 데이터 세트를 배치 한 후 rbindlist를 사용하고 unique으로 unique 행을 얻을 수 있습니다.

library(data.table) 
unique(rbindlist(mget(ls(pattern = "File\\s+[A-Z]+"))))[order(IDNum, Name)] 
# IDNum Name Time 
#1: 123 Light 12:30 
#2: 123 Light 1:00 
#3: 123 Light NA 
#4: 234 Lind 12:30 
#5: 666 Ryuk 2:00 
관련 문제