본문으로 바로가기

연구제안 및 문의하기

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

FAQ

orghid98~hhid19 중에서 어떤 것을 가구 id로 사용해야 할까? - SAS, SPSS, Stata문 활용 예 : 가구데이터의 연도간 merge

  • Date2016.02.03
  • Hit3,173
위의 Q6에서 본 바와 같이, 노동패널의 가구번호는 크게 당해 연도 가구번호와 원가구 번호로 구성된다. 노동패널 가구용 데이터에는 가구번호가 여러 개 존재하는데, 이는 노동패널 조사에 "한번이라도 응답한 적이 있는 모든 가구"를 기준으로 데이터가 생성되어 있기 때문이다.

19차년도 가구용 데이터에는 orghid98, orghid09, hhid02 ~ hhid19 과 같이 19개의 가구번호가 있다. 이들은 각각 1998년 원가구번호(orghid98), 2009년 추가표본 패널고유가구번호(orghid09), 2차가구번호(hhid02) ~ 19차가구번호(hhid19)를 의미한다. 원가구번호는 Q6에서 설명한 바와 같이 1차년도 조사당시의 가구번호를 의미하며, 2~19차 가구번호는 각 해마다 조사된 가구번호를 의미한다. 따라서 해당년도에 조사되지 않은 가구일 경우 해당년도의 가구번호가 missing값을 가진다.

예를 들어, 1차년도에 892번이었던 가구가 3차년도에 5150번 가구로 분가한 후, 5차년도에는 조사에 실패했다면, 이 가구의 가구번호는 orghid98은 892, hhid02는 missing, hhid03은 5150, hhid04는 5150, hhid05는 missing, hhid03부터 hhid04 까지 5150번을 갖게 되는 것이다.

만일 연구자가 동일한 가구끼리 연도 간 merge를 할 경우에는, 연구의 목적에 따라 가구번호를 사용하면 된다. 그러나 가구의 변동과 같은 특정상황을 분석하고자 하는 것이 아니라면, 일반적으로 원가구번호가 아닌 당해연도 가구번호를 기준으로 merge하는 것이 대부분이다. 이와 관련한 예제를 살펴보면 아래와 같다.

*=========================================;
* SAS - 가구용 데이터의 년도간 merge ;
*=========================================;

data h18; set a.klips18h;
hid=hhid18;
proc sort; by hid;

data h19; set a.klips19h;
hid=hhid19;
proc sort; by hid;

data new.h18h19; merge h18 h19;by hid;
if hwave19=1; /*19차에 응답한 가구 추출*/
run;


*=========================================.
* SPSS - 가구용 데이터의 년도간 merge .
*=========================================.

GET FILE='D:\19차\users guide\18차년도\klips18h.sav'.
dataset name h18.
compute hid=hhid18.
sort cases by hid.

GET FILE='D:\19차\users guide\19차년도\klips19h.sav'.
compute hid=hhid19.
sort cases by hid.

MATCH FILES /FILE=*
/FILE=h18
/BY hid.
select if (hwave19=1). /*19차에 조사된 사람만 남기기*/
fre hwave19.

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




/*======================================*/
/* stata - 가구용 데이터의 연도간 merge */
/*======================================*/

clear
use klips18h, clear
drop if hhid18==.
gen hid=hhid18
sort hid
save k18h, replace
use klips19h, clear
keep if hwave19==1
gen hid=hhid19 //19차에 조사된 가구만 남기기
sort hid
merge hid using k19h, unique sort
table _merge
table hwave19


*=========================================#
* R - 가구용 데이터의 년도간 merge #
*=========================================#

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

#18차, 19차 년도의 가구데이터 가구번호(해당년도 가구번호) 통일
library(plyr)
library(dplyr)

klips18h ← klips18h %>% filter(is.na(klips18h$hhid18) == FALSE)
h18 ← plyr::rename(klips18h, c("hhid18" = "hid"))

klips19h ← klips19h %>% filter(hwave19 == 1)
h19 ← plyr::rename(klips19h, c("hhid19" = "hid"))

#hid 를 기준변수로 하여 두 가구 데이터 병합.
h18h19 ← merge(h18, h19, by = "hid")

table(h18h19$hwave19)

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

스크랩