2017-11-19 19 views
0

나는이 데이터를길이가 다른 두 개의 대형 데이터 세트를 위치별로 병합하는 방법은 무엇입니까?

  1. 출생 관련 결과 (150K 기록) 죽음의
  2. 원인 (320K 기록)이 두 데이터 세트

가 공통으로 위치 해 있습니다를 설정해야합니다. 이 데이터 세트를 하나로 병합하는 방법을 잘 모르겠습니다. 목표는 이러한 데이터 세트를 병합하고 위치에 따라 출생 관련 결과와 사망 원인을 비교하여 시각화를 제공하는 것입니다.

나는 이것을 통해 R을 시도하고있다. 그러나 크기가 다르기 때문에 더 진행할 수 없었다.

데이터를 R이나 Excel 또는 적절한 데이터 정리 도구와 병합하는 방법은 무엇입니까?

+0

'병합 (first_data_set, second_data_set)'을 시도 했습니까? 병합 할 열의 이름이 같으면 잘 작동합니다. 열 이름이 같지 않으면 일치시킬 열 이름을 지정해야합니다. 자세한 내용은'? merge'를 참조하십시오. – Gregor

답변

0

사실 두 데이터 세트를 병합하여 각각의 열을 형성해야 할 필요가 있습니다. 크기 차이는 열을 나란히 배치하지 않으므로 문제가되지 않으며 각 데이터의 연도 및 위치 필드 값을 기준으로 합치고 있습니다 세트. 따라서 병합에는 다중 변수 병합 키가 있습니다 (또는 더 간단한 키를 갖기 위해 변수를 하나의 변수로 간단하게 연결할 수 있음).

  • 키 = (년, 위치) D1과 D2 모두
  • 키 = (년, 위치) D1에 있지만 D2에
  • 키 = (모든 경우에 우리는 3 가지 경우를 가질 수 있습니다 해 위치) I 시각화가 D1과 D2 (제 탄환 점) 모두에서 열이 필요하다고 가정

D2에 있지만 D1의 일 : 내부 데이터 세트 가입 후 필요하다. R에서 수행하려면 매우 간단한 구문을 가진 data.table 패키지를 사용할 수 있습니다.

library(data.table) 
# Extract the data in a data.table format 
    # can be replaced by reading from a file using fread or any other command to have both data sets as data tables. 
dt1 <- as.data.table(df1) 
dt2 <- as.data.table(df2) 

# set the merging key in each data table 
setkey(dt1, "year", "location") 
setkey(dt2, "year", "location") 
# merge data tables 
dt.result <- merge(dt1, dt2) # keep the default settings (inner join)