libname zh '~/taiwan/fies/sasdata'; options ls=72; %macro one(q); DATA zh.data&q; SET zh.new&q; KEEP hhid weight areacode urban serial agrtype agr_area agr_work person1-person16 relate1-relate16 sex1-sex16 age1-age16 educ1-educ16 grad1-grad16 empact1-empact16 empind1-empind16 empocc1-empocc16 part1-part16 empsoc1-empsoc16 empsta1-empsta16 empsit1-empsit16 earner1-earner16 marry1-marry16 outpat1-outpat16 discrg1-discrg16 insnhi1-insnhi16 ins1si1-ins1si16 ins1ms1-ins1ms16 ins2si1-ins2si16 ins2ms1-ins2ms16; DATA zh.person&q; SET zh.data&q; KEEP hhid personid weight areacode urban serial relate sex age educ graduate emp_act emp_ind emp_occ part emp_soc emp_stat emp_situ earner marry outpatnt discharg insnhi inssi1 insms1 inssi2 insms2 ; ARRAY per{16} person1-person16; ARRAY rel{16} relate1-relate16; ARRAY sx{16} sex1-sex16; ARRAY ag{16} age1-age16; ARRAY edu{16} educ1-educ16; ARRAY grd{16} grad1-grad16; ARRAY act{16} empact1-empact16; ARRAY ind{16} empind1-empind16; ARRAY occ{16} empocc1-empocc16; ARRAY prt{16} part1-part16; ARRAY soc{16} empsoc1-empsoc16; ARRAY esta{16} empsta1-empsta16; ARRAY situ{16} empsit1-empsit16; ARRAY ear{16} earner1-earner16; ARRAY mar{16} marry1-marry16; ARRAY out{16} outpat1-outpat16; ARRAY dis{16} discrg1-discrg16; ARRAY nhi{16} insnhi1-insnhi16; ARRAY si1s{16} ins1si1-ins1si16; ARRAY sm1s{16} ins1ms1-ins1ms16; ARRAY si2s{16} ins2si1-ins2si16; ARRAY sm2s{16} ins2ms1-ins2ms16; DO iii=1 TO 16; IF (per{iii} NE . AND per{iii} NE 0) THEN DO; personid = per{iii}; relate = rel{iii}; sex = sx{iii}; age = ag{iii}; educ = edu{iii}; graduate = grd{iii}; emp_act = act{iii}; emp_ind = ind{iii}; emp_occ = occ{iii}; part = prt{iii}; emp_soc = soc{iii}; emp_stat = esta{iii}; emp_situ = situ{iii}; earner = ear{iii}; marry = mar{iii}; outpatnt = out{iii}; discharg = dis{iii}; insnhi = nhi{iii}; inssi1 = si1s{iii}; insms1 = sm1s{iii}; inssi2 = si2s{iii}; insms2 = sm2s{iii}; OUTPUT; END; END; LABEL hhid ='Sample household id' personid ='Internal hhid' weight ='Sample weight' areacode ='Area Code' urban ='Urbanization' serial ='Serial number of households' agrtype = "Farm/nonfarm household" agr_area = "Farm hhold class by cult land size" agr_work = "Farm hhold class by working hours" relate ='Relationship to head' sex ='Gender' age ='Age' educ ='Highest level school attended' graduate ='Graduate status' emp_act ='Employment class by sector of activity' emp_ind ='Employment class by industry' emp_occ ='Employment class by occupation' part ='With part time work' outpatnt ='Times of outpatient' discharg ='Staying days of disch from hospital' emp_soc ='Employment class by social-eco status' emp_stat ='Employment status' emp_situ ='Employment situation' earner ='Income recipient' marry ='Marital status' insnhi ="Insured person's status of nat hlth ins" inssi1 ="Insured person's status of soc ins (1)" insms1 ="Insured months of social insurance (1)" inssi2 ="Insured person's status of soc ins (2)" insms2 ="Insured months of social insurance (2)"; PROC CONTENTS; run; %mend; %one(99); %one(00); %one(01); %one(02); %one(03); %include '~/nta/savastata.mac'; %macro convert(aa); data person&aa; set zh.person&aa; %savastata(~/taiwan/fies/fiesdata/,replace); run; %mend; %convert(99); %convert(00); %convert(01); %convert(02); %convert(03);