본문으로 바로가기

연구제안 및 문의하기

함께하는 KLIPS, 소통하는 KLIPS, 열린 KLIPS

FAQ

개인자료와 부가자료 합치기-기준 변수 PID를 이용한 Merge

  • Date2016.02.03
  • Hit4,477
부가조사 자료를 분석하기 위해서는 개인에 있는 핵심 변수들을 붙여야 하는 경우가 대부분이다. 예컨대, 어떤 연구자가 11차년도 교육 부가조사 중 "고2 때 수면시간" 변수를 개인자료에 붙여서 사용할 경우에는 다음과 같이 하면 된다.

① 11차년도 교육 부가조사에서 가져올 변수들을 keep 한다. (본 예시에서는 "고2때 수면시간" 변수인 a116257 와 merge 에 필요한 pid를 남긴다)
② 19차년도 개인자료와 11차년도 부가조사 자료를 각각 pid 를 기준으로 정렬("sort")한다.
③ 정렬시킨 두 자료를 merge 한다.


*===========================;
* SAS - Merge문의 사용 ;
*===========================;

data a11; set a.klips11a;
keep pid a116257;
proc sort; by pid;run;
data p19; set a.klips19p;
proc sort; by pid; run;
data new.pa1911; merge p19 a11; by pid;
proc freq; table a116257;
run;


*===========================.
* SPSS Merge문의 사용 .
*===========================.

GET FILE='D:\19차\users guide\11차년도\klips11a.sav'/keep pid a116257.
DATASET NAME a10.
SORT CASES BY PID.

GET FILE='D:\19차\users guide\19차년도\klips19p.sav'.
SORT CASES BY PID.

MATCH FILES /FILE=*
/FILE=a10
/BY PID.
EXE.
fre a116257.

SAVE OUTFILE='D:\19차\users guide\19차년도\k19p11a.sav'.


/*======================================*/
/* stata - merge */
/*======================================*/

/* data가 c:\data\klips\에 있다고 가정
메뉴바 이용법도 가능하다
1. 아래의 "use~" 줄까지 수행해서 자료를 불러놓은 다음
2. 메뉴바의 "data → combine datasets
→ merge two datasets → one-to-one on key variables
→ 파일 선택에서 C:\data\klips\klips10a.dta로 경로지정하고
→ key variables에는 pid 지정
→ sort key variables when necessary에 체크표시 한 후 ok
위와 같이 하면 아래의 "merge~ " 부분이 실행됨
아래와 같이 명령문을 실행하면 _merge라는 변수가 생성됨
1=원데이터에는 값이 없고 머지하고자 하는 데이터에는 값이 있는 경우
2=원데이터에는 값이 있으나 머지하고자하는 데이터에는 값이 없는 경우
3=양쪽에 값이 있어 제대로 붙은 경우 */

clear
use klips11a, clear
sort pid
merge pid using klips19p, unique sort
tab _merge //머지 결과의 확인
tab a116257

위의 프로그램은 SAS, Stata의 merge문과 SPSS의 match문을 이용하여 variable merge를 한 결과이다.


*===========================#
* R - Merge문의 사용 #
*===========================#

#데이터를 불러온다.
klips11a ← read.spss(file = "C:\\Users\\1-19spss\\klips11a.sav", use.value.labels = FALSE, to.data.frame = TRUE )
klips19p ← read.spss(file = "C:\\Users\\1-19spss\\klips19p.sav", use.value.labels = FALSE, to.data.frame = TRUE )

#11차년도 교육 부가조사에서 가져올 변수들을 keep한다. 데이터 가공을 위한 패키지 dplyr를 로드한다.
install.packages("dplyr") #패키지는 1회 설치 후에는 다시 설치할 필요가 없다.
library(dplyr)
a11 ← select(klips11a, pid, a116257)

#19차년도 개인자료와 11차년도 부가조사 자료를 각각 pid 기준으로 정렬한 후 병합한다.

pa1911 ← merge(klips19p, a11, by = "pid", all = TRUE)

head(pa1911)
table(pa1911$a116257)
View(pa1911)


<한국노동패널 1~19차년도 조사자료 User's Guide 121p Q5 참고>

스크랩