본문으로 바로가기

연구제안 및 문의하기

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

FAQ

사교육 자녀번호와 엄마번호 사용하기 - 가구원정보와 자녀(엄마)번호 연결하기

  • Date2016.02.03
  • Hit2,936
노동패널 가구용 자료는 사교육에 관한 변수들을 여러 가지 포함하고 있다. 이러한 사교육변수를 가구원 정보와 연결하여 사용하면, 보다 풍부한 분석이 가능해진다. 그렇다면, 가구원 정보와 사교육에 응답한 자녀번호(혹은 엄마번호)는 어떻게 연결될 수 있을까? 이는 자녀번호와 엄마번호가 부여되는 방식에 대한 이해가 갖춰지면 간단하게 알 수 있다. 자녀번호와 엄마번호는 각각 한 가구당 5쌍씩 있다. 19차의 경우, 자녀번호-1 (h191511)은 첫 번째 자녀가 그 가구의 몇 번째 가구원인지를 기록하며, 엄마번호-1 (h191512)은 자녀-1 의 엄마가 그 가구의 몇 번째 가구원인지를 기록하고 있다. 보다 구체적인 예를 들어보자.

노동패널 19차년도 가구자료(klips19h)를 열어서 19차년도 가구번호(hhid19)가 5150인 가구를 살펴보자. FAQ Q6 에서도 보았듯이, 이 가구는 원가구번호가 892이며, 3차년도에 분가한 가구이다. 그런데, 3차년도 분가 당시 원가구 892번 가구에서 총 4명의 가구원이 함께 분가하였다. 이때 분가한 가구원들의 pid는 순서대로 89201, 89203, 89204, 89205였다 (한 개인의 pid는 절대 변하지 않음을 기억하자). 이 가구의 첫 자녀번호(h191511)를 살펴보면 4이다. 즉, 5150 가구의 4번째 가구원임을 알 수 있다. 한 가구의 pid는 h190221부터 h190235까지 15개의 값이 옆으로 기록되어 있다. 따라서 이 아이의 pid는 4번째 가구원의 pid(h190224)에서 찾으면 되는 것이다. 이제 이 아이의 엄마에 대해 알아보자. 첫 아이의 엄마의 번호 (h191512) 는 2이므로, 엄마의 pid 는 두 번째 가구원의 pid (h190222)에서 찾으면 된다. 5150 가구에는 아이가 둘이고, 각각의 pid가 89204와 89205임을 직접 확인 해 보자.

이와 같이, 자녀번호와 엄마번호를 이용하면 5쌍의 자녀/엄마 각각의 정보를 추출하는 것이 가능해 진다. 여러 변수에 대해 반복적인 작업을 할 때에는 array (SAS) 혹은 vector (SPSS)를 이용해서 작업할 변수들을 묶은 뒤 do 문을 이용하면 편리하다. 아래 예제들에서는 이러한 방법으로 필요한 가구원 정보를 추출한 뒤, Q10에서와 마찬가지로 transpose (SAS) 혹은 restructure (SPSS)를 사용하여 취합하는 과정을 거치고 있다. 두 예제는 구현방식만 다를 뿐 논리적 구성은 똑같음을 확인 할 수 있다. 아래 두 예제는 각 case(아이) 별로 아이의 성별, 나이, 엄마 정보, 그리고 사교육정보를 가로로 추출한다. 엄마의 pid 가 기록되어있으므로 엄마의 개인설문 정보와의 merge 도 손쉽게 할 수 있다.


*=======================================================================================
* SAS - 자녀별 성별, 나이, 엄마정보, 사교육정보 추출하기: Array 문, Transpose 문 사용 ;
*=======================================================================================;

data h19; set a.klips19h;
if h191501=1;
run;

data h19_1; set h19;
array ppid[15] h190221-h190235;
array ssex[15] h190241-h190255;
array aage[15] h190361-h190375;

/*예) i=4일때: h191611=4 즉 두번째 자녀 번호가 4(두번째 아이가 4번째 가구원)인 경우, 그 아이의 pid(chpid2)는 4번째 가구원의 pid,
그 아이의 성별(sex)은 4번째 가구원의 성별, 그 아이의 나이(chage2)는 4번째 가구원의 만나이로 기록*/

do i=1 to 15;
if h191511=i then do; chpid1=ppid[i]; sex1=ssex[i]; chage1=aage[i]; end;
if h191611=i then do; chpid2=ppid[i]; sex2=ssex[i]; chage2=aage[i]; end;
if h191711=i then do; chpid3=ppid[i]; sex3=ssex[i]; chage3=aage[i]; end;
if h191811=i then do; chpid4=ppid[i]; sex4=ssex[i]; chage4=aage[i]; end;
if h191911=i then do; chpid5=ppid[i]; sex5=ssex[i]; chage5=aage[i]; end;

if h191512=i then do; mompid1=ppid[i]; momage1=aage[i]; end;
if h191612=i then do; mompid2=ppid[i]; momage2=aage[i]; end;
if h191712=i then do; mompid3=ppid[i]; momage3=aage[i]; end;
if h191812=i then do; mompid4=ppid[i]; momage4=aage[i]; end;
if h191912=i then do; mompid5=ppid[i]; momage5=aage[i]; end;
end;
run;

data h19_1; set h19_1;
proc sort; by hhid19;
/*transpose 문의 활용. 5개씩 데이터를 하나로 묶되, hhid19기준으로 정렬한다*/
proc transpose data=h19_1 out=trans1(rename=(col1=chpid));by hhid19;
var chpid1-chpid5; /*자녀 pid*/
proc transpose data=h19_1 out=trans2(rename=(col1=sex));by hhid19;
var sex1-sex5; /*자녀 성별*/
proc transpose data=h19_1 out=trans3(rename=(col1=age));by hhid19;
var chage1-chage5; /*자녀 만나이*/
proc transpose data=h19_1 out=trans4(rename=(col1=mompid));by hhid19;
var mompid1-mompid5; /*엄마 pid*/
proc transpose data=h19_1 out=trans5(rename=(col1=momage));by hhid19;
var momage1-momage5; /*엄마 만나이 */
proc transpose data=h19_1 out=trans6(rename=(col1=type1)); by hhid19;
var h191516 h191616 h191716 h191816 h191916; /* 사교육 종류 (1번째) */
proc transpose data=h19_1 out=trans7(rename=(col1=cost1)); by hhid19;
var h191519 h191619 h191719 h191819 h191919; /* 사교육 비용 (1번째) */
proc transpose data=h19_1 out=trans8(rename=(col1=type2)); by hhid19;
var h191520 h191620 h191720 h191820 h191920; /* 사교육 종류 (2번째) */
proc transpose data=h19_1 out=trans9(rename=(col1=cost2)); by hhid19;
var h191523 h191623 h191723 h191823 h191923; /* 사교육 비용 (2번째) */
proc transpose data=h19_1 out=trans10(rename=(col1=type3)); by hhid19;
var h191524 h191624 h191724 h191824 h191924; /* 사교육 종류 (3번째) */
proc transpose data=h19_1 out=trans11(rename=(col1=cost3)); by hhid19;
var h191527 h191627 h191727 h191827 h191927; /* 사교육 비용 (3번째) */
proc transpose data=h19_1 out=trans12(rename=(col1=type4)); by hhid19;
var h191528 h191628 h191728 h191828 h191928; /* 사교육 종류 (4번째) */
proc transpose data=h19_1 out=trans13(rename=(col1=cost4)); by hhid19;
var h191531 h191631 h191731 h191831 h191931; /* 사교육 비용 (4번째) */
proc transpose data=h19_1 out=trans14(rename=(col1=type5)); by hhid19;
var h191532 h191632 h191732 h191832 h191932; /* 사교육 종류 (5번째) */
proc transpose data=h19_1 out=trans15(rename=(col1=cost5)); by hhid19;
var h191535 h191635 h191735 h191835 h191935; /* 사교육 비용 (5번째) */
proc transpose data=h19_1 out=trans16(rename=(col1=type6)); by hhid19;
var h191536 h191636 h191736; /* 사교육 종류 (6번째) */
proc transpose data=h19_1 out=trans17(rename=(col1=cost6)); by hhid19;
var h191537 h191637 h191737;/* 사교육 비용 (6번째) */
proc transpose data=h19_1 out=trans18(rename=(col1=type7)); by hhid19;
var h191538 h191638 h191738;/* 사교육 종류 (7번째) */
proc transpose data=h19_1 out=trans19(rename=(col1=cost7)); by hhid19;
var h191539 h191639 h191739;/* 사교육 비용(7번째)*/

data edu;merge trans1 trans2 trans3 trans4 trans5 trans6 trans7 trans8 trans9 trans10 trans11 trans12 trans13 trans14 trans15 trans16 trans17 trans18 trans19; by hhid18;
drop _name_ _label_;

if chpid^=.; /*chpid결측치 처리*/
array c[7] cost1-cost7; /*사교육 비용 결측 처리*/
do i=1 to 7;
if c[i]=-1 then c[i]=.;
end;

totcost =sum(of cost1-cost7); /*한아이당 총 사교육 비용*/

array t[7] t1-t7; /*사교육이용 여부*/
array ty[7] type1-type7;
do i=1 to 7;
if ty[i]=. then t[i]=0;
if ty[i]>0 then t[i]=1;
end;

numb=sum(of t1-t7); /*한아이당 총 사교육기관 이용 갯수*/

proc univariate; var totcost;
proc freq; table numb;
run;


*==============================================.
* SPSS - Vector 문, Restructure 기능의 사용 .
*==============================================.

get file = 'D:\19차\users guide\19차년도\klips19h.sav'.

select if(h191501=1).

/*15차 데이터에서는 자녀 1-3명까지는 최대 7개까지 사교육을 응답하였고, 자녀 4,5는 최대 5개까지 사교육을 응답하였으므로, 변수의 숫자를 맞추기 위해 사교육기관종류, 비용 변수를 만듬.*/

compute k46=0. /*4번째 자녀의 6번째 사교육 종류*/
compute c46=0. /*4번째 자녀의 6번째 사교육 비용*/
compute k47=0. /*4번째 자녀의 7번째 사교육 종류*/
compute c47=0. /*4번째 자녀의 7번째 사교육 비용 */
compute k56=0. /*5번째 자녀의 6번째 사교육 종류*/
compute c56=0. /*5번째 자녀의 6번째 사교육 비용*/
compute k57=0. /*5번째 자녀의 7번째 사교육 종류*/
compute c57=0. /*5번째 자녀의 7번째 사교육 비용*/
recode k46 to c57(0=sysmis). /*결측 처리*/
exe.

fre k46 to c57.
/* pid, sex, age 를 1~5 아이까지 기록할 공벡터 생성 및 V1,V2,V3 벡터로 묶기 */

VECTOR pid (5) sex (5) age (5)
/V1=h190221 to h190235
/V2=h190241 to h190255
/V3=h190361 to h190375 .
LOOP #i=1 to 15.
if (h191511=#i) chpid1 = V1(#i). /*1511 자녀번호1*/
if (h191511=#i) sex1 = V2(#i).
if (h191511=#i) chage1 = V3(#i).
if (h191611=#i) chpid2 = V1(#i)./*1611 자녀번호3*/
if (h191611=#i) sex2 = V2(#i).
if (h191611=#i) chage2 = V3(#i).
if (h191711=#i) chpid3 = V1(#i)./*1811 자녀번호3*/
if (h191711=#i) sex3 = V2(#i).
if (h191711=#i) chage3 = V3(#i).
if (h191811=#i) chpid4 = V1(#i)./*1811 자녀번호4*/
if (h191811=#i) sex4 = V2(#i).
if (h191811=#i) chage4 = V3(#i).
if (h191911=#i) chpid5 = V1(#i)./*1911 자녀번호5*/
if (h191911=#i) sex5 = V2(#i).
if (h191911=#i) chage5 = V3(#i).
if (h191512=#i) mompid1 = V1(#i)./*1512 엄마번호1*/
if (h191512=#i) momage1 = V3(#i).
if (h191612=#i) mompid2 = V1(#i)./*1612 엄마번호2*/
if (h191612=#i) momage2 = V3(#i).
if (h191712=#i) mompid3 = V1(#i)./*1812 엄마번호3*/
if (h191712=#i) momage3 = V3(#i).
if (h191812=#i) mompid4 = V1(#i)./*1812 엄마번호4*/
if (h191812=#i) momage4 = V3(#i).
if (h191912=#i) mompid5 = V1(#i)./*1912 엄마번호5*/
if (h191912=#i) momage5 = V3(#i).
END LOOP.
EXECUTE.

VARSTOCASES /ID = id
/MAKE chpid FROM chpid1 chpid2 chpid3 chpid4 chpid5 /* 자녀 pid */
/MAKE mompid FROM mompid1 mompid2 mompid3 mompid4 mompid5 /* 엄마 pid */
/MAKE sex FROM sex1 sex2 sex3 sex4 sex5 /* 자녀 성별 */
/MAKE chage FROM chage1 chage2 chage3 chage4 chage5 /* 자녀 나이 */
/MAKE momage FROM momage1 momage2 momage3 momage4 momage5 /* 엄마 나이 */
/MAKE type1 FROM h191516 h191616 h191716 h191816 h191916 /* 사교육 종류 (1번째) */
/MAKE type2 FROM h191520 h191620 h191720 h191820 h191920 /* 사교육 종류 (2번째) */
/MAKE type3 FROM h191524 h191624 h191724 h191824 h191924 /* 사교육 종류 (3번째) */
/MAKE type4 FROM h191528 h191628 h191728 h191828 h191928 /* 사교육 종류 (4번째) */
/MAKE type5 FROM h191532 h191632 h191732 h191832 h191932 /* 사교육 종류 (5번째) */
/MAKE type6 FROM h191536 h191636 h191736 k46 k47 /* 사교육 종류 (6번째) */
/MAKE type7 FROM h191538 h191638 h191738 k56 k57/* 사교육 종류 (7번째) */
/MAKE cost1 FROM h191519 h191619 h191719 h191819 h191919 /* 사교육 비용 (1번째) */
/MAKE cost2 FROM h191523 h191623 h191723 h191823 h191923 /* 사교육 비용 (2번째) */
/MAKE cost3 FROM h191527 h191627 h191727 h191827 h191927 /* 사교육 비용 (3번째) */
/MAKE cost4 FROM h191531 h191631 h191731 h191831 h191931 /* 사교육 비용 (4번째) */
/MAKE cost5 FROM h191535 h191635 h191735 h191835 h191935 /* 사교육 비용 (5번째) */
/MAKE cost6 FROM h191537 h191637 h191737 c46 c47/* 사교육 비용 (6번째) */
/MAKE cost7 FROM h191539 h191639 h191739 c56 c57/* 사교육 비용 (7번째) */
/INDEX = Index1(5)
/KEEP = hhid19
/NULL = KEEP.
execute.

recode cost1 to cost7(-1=sysmis). /*비용 결측처리*/
count numb=type1 type2 type3 type4 type5 type6 type7(1 thru high). /*한아이당 이용 사교육기관 갯수*/
compute totcost=sum(cost1 to cost7). /* 한 아이당 총 사교육비용 */

select if (chpid>0). /* 결측치 처리 */

des totcost/stat=mean std min max.
fre numb.

save outfiel= 'D:\19차\users guide\19차년도\klips19h_ch.sav'.


/*======================================*/
/* stata - 사교육 자녀번호와 엄마번호 */
/*======================================*/

clear
use klips19h, clear
keep if hwave19==1

local j=1
foreach sex of varlist h190241-h190255 {
rename `sex' sex`j'
local ++j
}
local k=1
foreach age of varlist h190361-h190375 {
rename `age' age`k'
local ++k
}
local l=1
foreach pid of varlist h190221-h190235 {
rename `pid' pid`l'
local ++l
}
foreach n of numlist 1/5 {
gen chpid`n'=.
gen chsex`n'=.
gen chage`n'=.
gen mompid`n'=.
}
foreach n of numlist 1/15 {
replace chpid1=pid`n' if h191511==`n'
replace chsex1=sex`n' if h191511==`n'
replace chage1=age`n' if h191511==`n'
replace mompid1=pid`n' if h191512==`n'
}
foreach n of numlist 1/15 {
replace chpid2=pid`n' if h191611==`n'
replace chsex2=sex`n' if h191611==`n'
replace chage2=age`n' if h191611==`n'
replace mompid2=pid`n' if h191612==`n'
}
foreach n of numlist 1/15 {
replace chpid3=pid`n' if h191711==`n'
replace chsex3=sex`n' if h191711==`n'
replace chage3=age`n' if h191711==`n'
replace mompid3=pid`n' if h191712==`n'
}
foreach n of numlist 1/15 {
replace chpid4=pid`n' if h191811==`n'
replace chsex4=sex`n' if h191811==`n'
replace chage4=age`n' if h191811==`n'
replace mompid4=pid`n' if h191812==`n'
}
foreach n of numlist 1/15 {
replace chpid5=pid`n' if h191911==`n'
replace chsex5=sex`n' if h191911==`n'
replace chage5=age`n' if h191911==`n'
replace mompid5=pid`n' if h191912==`n'
}
local i=1
foreach type1 of varlist h191516 h191616 h191716 h191816 h191916 {
rename `type1' type1`i'
local ++i
}
local i=1
foreach type2 of varlist h191520 h191620 h191720 h191820 h191920 {
rename `type2' type2`i'
local ++i
}
local i=1
foreach type3 of varlist h191524 h191624 h191724 h191824 h191924 {
rename `type3' type3`i'
local ++i
}
local i=1
foreach type4 of varlist h191528 h191628 h191728 h191828 h191928 {
rename `type4' type4`i'
local ++i
}
local i=1
foreach type5 of varlist h191532 h191632 h191732 h191832 h191932 {
rename `type5' type5`i'
local ++i
}
local i=1
foreach type6 of varlist h191536 h191636 h191736 {
rename `type6' type6`i'
local ++i
}
local i=1
foreach type7 of varlist h191538 h191638 h191738 {
rename `type7' type7`i'
local ++i
}
local i=1
foreach cost1 of varlist h191519 h191619 h191719 h191819 h191919 {
rename `cost1' cost1`i'
local ++i
}
local i=1
foreach cost2 of varlist h191523 h191623 h191723 h191823 h191923 {
rename `cost2' cost2`i'
local ++i
}
local i=1
foreach cost3 of varlist h191527 h191627 h191727 h191827 h191927 {
rename `cost3' cost3`i'
local ++i
}
local i=1
foreach cost4 of varlist h191531 h191631 h191731 h191831 h191931 {
rename `cost4' cost4`i'
local ++i
}
local i=1
foreach cost5 of varlist h191535 h191635 h191735 h191835 h191935 {
rename `cost5' cost5`i'
local ++i
}
local i=1
foreach cost6 of varlist h191537 h191637 h191737 {
rename `cost6' cost6`i'
local ++i
}
local i=1
foreach cost7 of varlist h191539 h191639 h191739 {
rename `cost7' cost7`i'
local ++i
}
#delimit;
keep hhid18 chpid1-mompid5
type11 type12 type13 type14 type15
type21 type22 type23 type24 type25
type31 type32 type33 type34 type35
type41 type42 type43 type44 type45
type51 type52 type53 type54 type55
type61 type62 type63
type71 type72 type73
cost11 cost12 cost13 cost14 cost15
cost21 cost22 cost23 cost24 cost25
cost31 cost32 cost33 cost34 cost35
cost41 cost42 cost43 cost44 cost45
cost51 cost52 cost53 cost54 cost55
cost61 cost62 cost63
cost71 cost72 cost73;
#delimit cr

gen type64=.
gen type65=.
gen type74=.
gen type75=.
gen cost64=.
gen cost65=.
gen cost74=.
gen cost75=.

#delimit;
reshape long chpid chsex chage mompid
type1 cost1 type2 cost2 type3 cost3 type4 cost4 type5 cost5 type6 cost6 type7 cost7, i(hhid18) ;
#delimit cr

recode cost*(-1=.)
egen totcost=rowtotal(cost*), missing /*사교육 비용*/
egen numb=anycount(type*), values(0/21) /*사교육 종류*/
drop if chpid==.
sum totcost
tab numb

save k19ch, replace


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

klips19h ← read.spss(file = "C:\\Users\\KLI\\DATA\\1-19spss\\klips19h.sav", use.value.labels = FALSE, to.data.frame = TRUE )

h19 ← filter(klips19h, h191501 == 1) #자녀 있는 경우만 추출

first.chnum ← select(h19, h191511) # 첫번째 자녀 가구원 넘버
second.chnum ← select(h19, h191611)
third.chnum ← select(h19, h191711)
fourth.chnum ← select(h19, h191811)
fifth.chnum ← select(h19, h191911)

first.momnum ← select(h19, h191512) #첫번째 자녀 어머니의 가구원 넘버
second.momnum ← select(h19, h191612)
third.momnum ← select(h19, h191712)
fourth.momnum ← select(h19, h191812)
fifth.momnum ← select(h19, h191912)

first.num ← cbind(h19$hhid19, first.chnum, first.momnum, order = c(1)) # 첫번째 자녀 및 어머니의 가구원 넘버. order변수 추가
second.num ← cbind(h19$hhid19,second.chnum, second.momnum, order = c(2))
third.num ← cbind(h19$hhid19,third.chnum, third.momnum, order = c(3))
fourth.num ← cbind(h19$hhid19,fourth.chnum, fourth.momnum, order = c(4))
fifth.num ← cbind(h19$hhid19,fifth.chnum, fifth.momnum, order =c(5))

names(first.num) ← c("hhid19", "chnum", "momnum", "order") #합치기 위해 변수명 변경
names(second.num) ← c("hhid19", "chnum", "momnum", "order")
names(third.num) ← c("hhid19", "chnum", "momnum", "order")
names(fourth.num) ← c("hhid19", "chnum", "momnum", "order")
names(fifth.num) ← c("hhid19", "chnum", "momnum", "order")

num ← rbind(first.num,second.num,third.num, fourth.num, fifth.num)#데이터 병합


#자녀의 pid변수 생성
num$child.pid ← ifelse(num$chnum==1, h19$h190221,
ifelse(num$chnum==2,h19$h190222,
ifelse(num$chnum==3,h19$h190223,
ifelse(num$chnum==4,h19$h190224,
ifelse(num$chnum==5,h19$h190225,
ifelse(num$chnum==6,h19$h190226,
ifelse(num$chnum==7,h19$h190227,
ifelse(num$chnum==8,h19$h190228,
ifelse(num$chnum==9,h19$h190229,
ifelse(num$chnum==10,h19$h190230,
ifelse(num$chnum==11,h19$h190231,
ifelse(num$chnum==12,h19$h190232,
ifelse(num$chnum==13,h19$h190233,
ifelse(num$chnum==14,h19$h190234,
ifelse(num$chnum==15,h19$h190235,NA)))))))))))))))

#자녀의 성별 변수 생성
num$child.sex ← ifelse(num$chnum==1, h19$h190241,
ifelse(num$chnum==2,h19$h190242,
ifelse(num$chnum==3,h19$h190243,
ifelse(num$chnum==4,h19$h190244,
ifelse(num$chnum==5,h19$h190245,
ifelse(num$chnum==6,h19$h190246,
ifelse(num$chnum==7,h19$h190247,
ifelse(num$chnum==8,h19$h190248,
ifelse(num$chnum==9,h19$h190249,
ifelse(num$chnum==10,h19$h190250,
ifelse(num$chnum==11,h19$h190251,
ifelse(num$chnum==12,h19$h190252,
ifelse(num$chnum==13,h19$h190253,
ifelse(num$chnum==14,h19$h190254,
ifelse(num$chnum==15,h19$h190255,NA)))))))))))))))
#자녀의 나이 변수 생성
num$child.age ← ifelse(num$chnum==1, h19$h190361,
ifelse(num$chnum==2,h19$h190362,
ifelse(num$chnum==3,h19$h190363,
ifelse(num$chnum==4,h19$h190364,
ifelse(num$chnum==5,h19$h190365,
ifelse(num$chnum==6,h19$h190366,
ifelse(num$chnum==7,h19$h190367,
ifelse(num$chnum==8,h19$h190368,
ifelse(num$chnum==9,h19$h190369,
ifelse(num$chnum==10,h19$h190370,
ifelse(num$chnum==11,h19$h190371,
ifelse(num$chnum==12,h19$h190372,
ifelse(num$chnum==13,h19$h190373,
ifelse(num$chnum==14,h19$h190374,
ifelse(num$chnum==15,h19$h190375,NA)))))))))))))))

#어머니의 pid 변수 생성

num$mom.pid ← ifelse(num$momnum==1, h19$h190221,
ifelse(num$momnum==2,h19$h190222,
ifelse(num$momnum==3,h19$h190223,
ifelse(num$momnum==4,h19$h190224,
ifelse(num$momnum==5,h19$h190225,
ifelse(num$momnum==6,h19$h190226,
ifelse(num$momnum==7,h19$h190227,
ifelse(num$momnum==8,h19$h190228,
ifelse(num$momnum==9,h19$h190229,
ifelse(num$momnum==10,h19$h190230,
ifelse(num$momnum==11,h19$h190231,
ifelse(num$momnum==12,h19$h190232,
ifelse(num$momnum==13,h19$h190233,
ifelse(num$momnum==14,h19$h190234,
ifelse(num$momnum==15,h19$h190235,NA)))))))))))))))


#어머니의 나이 변수 생성
num$mom.age ← ifelse(num$momnum==1, h19$h190361,
ifelse(num$momnum==2,h19$h190362,
ifelse(num$momnum==3,h19$h190363,
ifelse(num$momnum==4,h19$h190364,
ifelse(num$momnum==5,h19$h190365,
ifelse(num$momnum==6,h19$h190366,
ifelse(num$momnum==7,h19$h190367,
ifelse(num$momnum==8,h19$h190368,
ifelse(num$momnum==9,h19$h190369,
ifelse(num$momnum==10,h19$h190370,
ifelse(num$momnum==11,h19$h190371,
ifelse(num$momnum==12,h19$h190372,
ifelse(num$momnum==13,h19$h190373,
ifelse(num$momnum==14,h19$h190374,
ifelse(num$momnum==15,h19$h190375,NA)))))))))))))))
###사교육 데이터 정리
# 1번째 사교육 종류 및 비용

num$edu1 ← ifelse(num$order == 1, h19$h191516,
ifelse(num$order ==2, h19$h191616,
ifelse(num$order ==3, h19$h191716,
ifelse(num$order ==4, h19$h191816,
ifelse(num$order == 5, h19$h191916,NA )))))
num$educost1 ← ifelse(num$order ==1, h19$h191519,
ifelse(num$order == 2, h19$h191619,
ifelse(num$order ==3, h19$h191719,
ifelse(num$order ==4, h19$h191819,
ifelse(num$order ==5, h19$h191919, NA)))))

# 2번째 사교육 종류 및 비용

num$edu2 ← ifelse(num$order == 1, h19$h191520,
ifelse(num$order ==2, h19$h191620,
ifelse(num$order ==3, h19$h191720,
ifelse(num$order ==4, h19$h191820,
ifelse(num$order == 5, h19$h191920,NA )))))
num$educost2 ← ifelse(num$order ==1, h19$h191523,
ifelse(num$order == 2, h19$h191623,
ifelse(num$order ==3, h19$h191723,
ifelse(num$order ==4, h19$h191823,
ifelse(num$order ==5, h19$h191923, NA)))))


# 3번째 사교육 종류 및 비용

num$edu3 ← ifelse(num$order == 1, h19$h191524,
ifelse(num$order ==2, h19$h191624,
ifelse(num$order ==3, h19$h191724,
ifelse(num$order ==4, h19$h191824,
ifelse(num$order == 5, h19$h191924,NA )))))
num$educost3 ← ifelse(num$order ==1, h19$h191527,
ifelse(num$order == 2, h19$h191627,
ifelse(num$order ==3, h19$h191727,
ifelse(num$order ==4, h19$h191827,
ifelse(num$order ==5, h19$h191927, NA)))))


# 4번째 사교육 종류 및 비용

num$edu4 ← ifelse(num$order == 1, h19$h191528,
ifelse(num$order ==2, h19$h191628,
ifelse(num$order ==3, h19$h191728,
ifelse(num$order ==4, h19$h191828,
ifelse(num$order == 5, h19$h191928,NA )))))
num$educost4 ← ifelse(num$order ==1, h19$h191531,
ifelse(num$order == 2, h19$h191631,
ifelse(num$order ==3, h19$h191731,
ifelse(num$order ==4, h19$h191831,
ifelse(num$order ==5, h19$h191931, NA)))))


# 5번째 사교육 종류 및 비용

num$edu5 ← ifelse(num$order == 1, h19$h191532,
ifelse(num$order ==2, h19$h191632,
ifelse(num$order ==3, h19$h191732,
ifelse(num$order ==4, h19$h191832,
ifelse(num$order == 5, h19$h191932,NA )))))
num$educost5 ← ifelse(num$order ==1, h19$h191535,
ifelse(num$order == 2, h19$h191635,
ifelse(num$order ==3, h19$h191735,
ifelse(num$order ==4, h19$h191835,
ifelse(num$order ==5, h19$h191935, NA)))))


# 6번째 사교육 종류 및 비용

num$edu6 ← ifelse(num$order == 1, h19$h191536,
ifelse(num$order ==2, h19$h191636,
ifelse(num$order ==3, h19$h191736,
ifelse(num$order ==4, h19$h191836,
ifelse(num$order == 5, h19$h191936,NA )))))
num$educost6 ← ifelse(num$order ==1, h19$h191537,
ifelse(num$order == 2, h19$h191637,
ifelse(num$order ==3, h19$h191737,
ifelse(num$order ==4, h19$h191837,
ifelse(num$order ==5, h19$h191937, NA)))))


# 7번째 사교육 종류 및 비용

num$edu7 ← ifelse(num$order == 1, h19$h191538,
ifelse(num$order ==2, h19$h191638,
ifelse(num$order ==3, h19$h191738,
ifelse(num$order ==4, h19$h191838,
ifelse(num$order == 5, h19$h191938,NA )))))
num$educost7 ← ifelse(num$order ==1, h19$h191539,
ifelse(num$order == 2, h19$h191639,
ifelse(num$order ==3, h19$h191739,
ifelse(num$order ==4, h19$h191839,
ifelse(num$order ==5, h19$h191939, NA)))))


# 자녀별 사교육 총비용
num$totalcost ←as.numeric((ifelse(is.na(num$child.pid), NA,
(ifelse(is.na(num$edu1), NA,
(rowSums(num[ , c("educost1","educost2","educost3","educost4","educost5","educost6","educost7")], na.rm=TRUE))
)))))

# 자녀별 사교육 이용 여부
num$edu ← ifelse((is.na(num$chnum)) & (is.na(num$edu1)) & (is.na(num$edu2)) & (is.na(num$edu3)) & (is.na(num$edu4)) & (is.na(num$edu5)) & (is.na(num$edu6)) & (is.na(num$edu7)), "NA",
ifelse((is.na(num$edu1)) & (is.na(num$edu2)) & (is.na(num$edu3)) & (is.na(num$edu4)) & (is.na(num$edu5)) & (is.na(num$edu6)) & (is.na(num$edu7)),"No","Yes"))

# 자녀별 사교육 이용 갯수
num$edu1[num$edu1==0] ← NA #표기 오류 결측값 수정
num$edu2[num$edu2==0] ← NA
num$edu3[num$edu3==0] ← NA
num$edu4[num$edu4==0] ← NA
num$edu5[num$edu5==0] ← NA
num$edu6[num$edu6==0] ← NA
num$edu7[num$edu7==0] ← NA

k ← (as.numeric(is.na(num$edu1)) + as.numeric(is.na(num$edu2)) + as.numeric(is.na(num$edu3))
+ as.numeric(is.na(num$edu4)) + as.numeric(is.na(num$edu5)) + as.numeric(is.na(num$edu6))
+ as.numeric(is.na(num$edu7))) # 임시 변수 k 생성

num$numedu ← ifelse(is.na(num$chnum), NA, (c(7)-k)) # 리코딩하여 변수 생성

#가구별로 정렬된 자녀와 어머니의 가구 번호. order는 몇번째 자녀인지를 나타냄.
num.hhid19 ← arrange(num, hhid19)
head(num.hhid19)
# 순서대로 가구번호, 자녀의 가구원번호, 어머니의 가구원 번호, 자녀 차례, 자녀의pid, 자녀의 성별,
# 자녀의 나이, 어머니의 pid, 어머니의 나이, 7개의 사교육 종류와 비용, 자녀별 총 사교육 비용, 사교육 여부, 사교육 이용 갯수를
# 나타낸다.
summary(num.hhid19$totalcost)
table(num.hhid19$numedu)

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

스크랩