* 10/8/2007: changed violMony to violSpen. * WAS Egypt 2005-6 - fieldwork by FEPS CSSA (University of Cairo): all data sent to me by e-mail. * First stage fieldwork in December 2005: CSSA sent about 2,101 (2,516) cases, on 13th March 2006. * I noticed there were less than the 2,500 cases agreed in the contract: CSSA sent about 415 ( 418) cases, on 7th May 2006. * Second stage fieldwork: CSSA sent 2,509 cases, on 1st November 2006. * *get file 'C:\_WAS\2005-6 Egypt\raw data 2005 Dec\individuals data.sav'. *freq wRESULT. /* Effective sample size = 2,101. *freq wGOVERN. *sort cases by wRESULT. /* I looked at the cases {wRESULT>1}: there's no helpful data in them. So, only 2101 {wRESULT=1} cases in this file are useful. *disp labels / var w401 to w404new. *compute season = 1. /* To be able to identify which cases are from the first data file. *save outfile 'C:\_WAS\2005-6 Egypt\raw data 2005 Dec\individuals data tmp.sav'. *get file 'C:\_WAS\2005-6 Egypt\raw data 2006 Mar\individuals data supplement.sav'. *freq wRESULT. /* Effective sample size = 415. *freq wGOVERN. *sort cases by wRESULT. /* I looked at the cases {wRESULT>1}: there's no helpful data in them. So, only 2101 {wRESULT=1} cases in this file are useful. *compute season = 2. /* To be able to identify which cases are from the 'supplement' data file. *save outfile 'C:\_WAS\2005-6 Egypt\raw data 2006 Mar\individuals data supplement tmp.sav'. *get file 'C:\_WAS\2005-6 Egypt\raw data 2006 Jul\individuals data.sav'. *freq wRESULT. /* Effective sample size = 2,509. *disp labels / var w401 to w410. * I noticed some July 2006 variables have different var names to two previous seasons; pre-July2006 var names seem better to me. This applies to w403 to w410, at least. * I initially tried to fix this by the next line, but I now think it's inappropriate: I just change var labels in this file. *rename var (w402 =w403) (w403 =w405) (w404 =w406A) (w405 =w406B) (w406A =w406C) (w406B =w406D) (w406C =w406E) (w406D =w406F) (w406E =w407A) (w406F =w407B) (w407A =w407C) (w407B =w407D) (w407C =w407E) (w407D =w407F) (w407E =w408A) (w407F =w408B) (w408A =w408C) (w408B =w408D) (w408C =w408E) (w408D =w408F) (w408E =w409) (w408F =w410) (w409 =w402new) (w410 =w404new). /* I thought this needed for July 2006 data file. *variable label W401 'How much do you usually earn per month?' W403 'On average how much does your spouse usually earn per month' W405 'If anyone else in your family is earning, how much does he/ she/ they earn if you add up their earnings?' W406A 'Interest' W406B 'Remittance from relatives outside household' W406C 'Proceeds from land or other properties' W406D 'Pension' W406E 'Governmental support' W406F 'Other' W407A 'mobile phone' W407B 'smoking (cigarettes, sheesha,cofeeshop etc)' W407C 'transport equipment (truck, taxi,C.T.A, metro, bus,' W407D 'other spending on yourself, (entertainment…)' W407E 'clothes for yourself: ( ignore clothes for children, etc)' W407F 'Other spending ( per 6 month )' W408A 'mobile phone' W408B 'smoking (cigarettes, sheesha,cofeeshop etc)' W408C 'transport equipment (truck, taxi,C.T.A, metro, bus,' W408D 'other spending on yourself, (entertainment…)' W408E 'clothes for himself: ( ignore clothes for children, etc)' W408F 'Other spending ( per 6 month )' W409 'To what extent does it affect the children needs and the living standard of the family?' W410 'In the last 6 months, how often did you cut the size of meals or skip meals' W402 'Who decides how the money you earn will be used' W404 'Who decides how the money your spouse earns will be used'. /* I copied these var labs from Dec 2005 data (season=1). *rename var (w402=w402new)(w404=w404new). * For some of the above variables, the value labels are incorrect - I reset them all, so SPSS will use val labels from Dec 2005 data (season=1). *val lab w401 to w410 -9 'remove existing labels'. *missing values w401 to w410 (-9). /* I'm not sure I need this line: I just put it in to ensure I don't lose data later. *freq w401 to w410. *compute season = 3. /* To be able to identify which cases are from the 'supplement' data file. *save outfile 'C:\_WAS\2005-6 Egypt\raw data 2006 Jul\individuals data tmp.sav'. *. * On 9th November 2006, CSSA sent me a new version of July2006 data: . get file 'C:\_WAS\2005-6 Egypt\raw data 2006 Jul\individuals data.sav'. freq wRESULT. /* Effective sample size = 2,509. compute season = 3. /* To be able to identify which cases are from the 'supplement' data file. save outfile 'C:\_WAS\2005-6 Egypt\raw data 2006 Jul\individuals data tmp.sav'. add files /file 'C:\_WAS\2005-6 Egypt\raw data 2005 Dec\individuals data tmp.sav' /file 'C:\_WAS\2005-6 Egypt\raw data 2006 Mar\individuals data supplement tmp.sav' /file 'C:\_WAS\2005-6 Egypt\raw data 2006 Jul\individuals data tmp.sav'. *. var lab season 'Time of year'. val lab season 1'December to February' 2'March to May' 3'June to August' 4'September to November'. *cros wINT by season. * Dates all Dec05 or Jan06, but supplement should be March: in e-mail 11 May 06, Shams at CSSA wrote about supplement: "The data were collected from 26/3/2006 to *30/3/2006 but we have to enter them in this way because the entry program refused to enter any month after January, and the time was too short to do any modifications". *cros hINT by hTEMP. /*This line (on hh supplement data file) implies 161205 not same day as 181205. if (season=2 & wINT=161205) wINT = 260306. /* I have to guess the exact day: can't be far from this. if (season=2 & wINT=181205) wINT = 260306. /* I have to guess the exact day: can't be far from this. if (season=2 & wINT=160106) wINT = 260306. /* Assume day is correct, but month/year are not. if (season=2 & wINT=260106) wINT = 260306. /* Assume day is correct, but month/year are not. if (season=2 & wINT=270106) wINT = 270306. /* Assume day is correct, but month/year are not. if (season=2 & wINT=271205) wINT = 270306. /* Assume day is correct, but month/year are not. if (season=2 & wINT=280106) wINT = 280306. /* Assume day is correct, but month/year are not. if (season=2 & wINT=290106) wINT = 290306. /* Assume day is correct, but month/year are not. if (season=2 & wINT=300106) wINT = 300306. /* Assume day is correct, but month/year are not. *cros wINT by season. compute INT_year = 2005. if (season=2) INT_year = 2006. if (season=3) INT_year = 2006. exec. sort cases by season wPSU wNUMBER. save outfile 'C:\_WAS\2005-6 Egypt\individuals data tmp.sav' /drop wINTy. *freq wRESULT. /* Effective sample size = 5,025. *get /file 'C:\_WAS\2005-6 Egypt\raw data 2005 Dec\household data.sav'. *freq hRESULT. /* Effective sample size = 2,379. *freq hELIG. /* 181 cases of hELIG=0: presumably no-one in the household was eligible. *. *get /file 'C:\_WAS\2005-6 Egypt\raw data 2006 Mar\household data supplement.sav'. *freq hRESULT. /* Effective sample size = 418. *freq hELIG. /* 3 cases of hELIG=0: presumably no-one in the household was eligible. *cros season by x17F. /* This line shows no x17f=1 in 'supplement' file. I fix this using the next 5 lines. *numeric x17F. /* 5 lines added by John Simister 9th May 2006, adapted from x17E in 'h17.sps'. *if (index(h17,'F') > 0) x17F = 1. *if (length(ltrim(rtrim(h17))) > 0 & index(h17,'F') = 0) x17F = 0. *variable label x17F. *value label x17F 1 'Yes' 0 'No'. /* No need for these 5 lines: no cases of h17='F'. *. *get /file 'C:\_WAS\2005-6 Egypt\raw data 2006 Jul\household data.sav'. *freq h12. /* Warning: unlabelled values 4, 5, 7, 10, 11. *freq hRESULT. /* Effective sample size = 2,509. add files /file 'C:\_WAS\2005-6 Egypt\raw data 2005 Dec\household data.sav' /file 'C:\_WAS\2005-6 Egypt\raw data 2006 Mar\household data supplement.sav' /file 'C:\_WAS\2005-6 Egypt\raw data 2006 Jul\household data.sav'. freq hRESULT. /* Effective sample size = 5,306 [was 5,176 before new data sent 9th Nov 2006]. *freq h12new h12. recode h12 h12new (sysmis = -99). *cros h12 by h12new. if (h12new= -99) h12new = h12. recode h12 h12new (-99 = sysmis). *freq h12new. recode hINT ( 260105 = 260106 )( 270105 = 270106 )( 280105 = 280106 )( 290105 = 290106 )( 300105 = 300106 ). /*Correct obvious typos: no interviews in Jan 2005. compute INT_day = trunc( hINT / 10000). if (hINTd>0) INT_day = hINTd. var label INT_day 'Day of month of interview'. *. compute INT_mnth = trunc( hINT / 100) - (INT_day*100). if (hINTm>0) INT_mnth = hINTm. val label INT_mnth 1"January" 2"February" 3"March" 4"April" 5"May" 6"June" 7"July" 8"August" 9"September" 10"October" 11"November" 12"December". var label INT_mnth 'Month of interview'. *cros INT_day by INT_mnth. *. compute INT_year =2000+ hINT - (INT_day*10000) - (INT_mnth*100). if (hINTy=6) INT_year =2006. var label INT_year 'Year of interview'. *freq INT_year. * Dates of supplement should be March: in e-mail 11 May 06, Shams at CSSA wrote about supplement: "The data were collected from 26/3/2006 to *30/3/2006 but we have to enter them in this way because the entry program refused to enter any month after January, and the time was too short to do any modifications". recode INT_mnth (1 = 3). compute season = INT_mnth. recode season (12,1,2=1)(3,4,5=2)(6,7,8=3)(9,10,11=4). *cros INT_mnth by season. exec. rename var (hPSU= wPSU)(hNUMBER=wNUMBER). sort cases by season wPSU wNUMBER. *. save outfile 'C:\_WAS\2005-6 Egypt\household data tmp.sav'. * This way to link the household & individual data files was recommended in e-mail from Dr. Rashad H. Abdel Rahman of CSSA (19/3/2006); I add season for Jul 2006: . match files / table 'C:\_WAS\2005-6 Egypt\household data tmp.sav' / file 'C:\_WAS\2005-6 Egypt\individuals data tmp.sav' / by season wPSU wNUMBER. /*This gives fewer cases than method below. recode INT_mnth (sysmis= -9). cros season by INT_mnth. recode INT_mnth (-9 = 3). /* The 36 cases with [INT_mnth=-9] have no household data: could delete them. *freq hRESULT. /* Effective sample size = 5,107. *freq hELIG. /* Effective sample size = 5,107-21=5,086 (ignoring hhs with no eligible person). *freq w104 w102 w202. /* These individual-level vars have about 5,000 nonmissing cases. *. * My method: . *match files / file 'C:\_WAS\2005-6 Egypt\household data tmp.sav' / file 'C:\_WAS\2005-6 Egypt\individuals data tmp.sav' / by season wPSU wNUMBER. *freq hRESULT h02$01. /* Effective sample size = 5,306. *freq w104 w102 w202. /* These vars have same numbers of nonmissing cases as CSSA method above. * I could increase the number of cases by using the second of the two match files ('file' instead of 'table', for HH data). It seems to give data on more households; but is * there any point in getting the extra data, if the useful variables are all blank? Presumably the difference is that in the table method, SPSS only matches if both HH and * person-level data exist. So use the above method recommended by CSSA (not "My method"). *freq w515h w515m. *freq hSTARTh hSTARTm. /* a few cases of start hour (hSTARTh) more than 24 - impossible. *cros hSTARTh by h23h. /* h23h looks ok, in cases where hSTARTh implausible (hr=30; =45; =46; =48). if (hSTARTh>24) hSTARTh = h23h. /* If >24, must be a typing error: so use h23h instead. recode hSTARTh w515h (24=0)(25 thru hi=sysmis). /* Only one case over 24. compute INT_time = hSTARTh +(hSTARTm/60). compute INT_finis = w515h +(w515m /60). var label INT_time 'Start time of interview'. var label INT_finis 'Finish time of interview'. *graph/scatter INT_time with INT_finis. /* There are a few outliers - can't tell which is correct (start or finish time). *compute INTsta = trunc(INT_time * 6). *compute INTfin = trunc(INT_finis * 6). *cros INTsta by INTfin. /* looks OK. *compute INTlengt = (INT_finis - INT_time)*60. *var label INTlengt 'Length of interview'. *graph/bar INTlengt. recode hTEMP (99=sysmis). /* Unlabelled. rename var (hTEMP = temperat). var lab temperat 'Temperature at the time of interview (degrees Centigrade)'. recode Hgovern Wgovern (sysmis=-99). if (Hgovern = -99) Hgovern = Wgovern. rename var (Hgovern = LIVE_cit). /* Not all governorates are cities; but 'BORN and LIVEvariables.sps' uses it to work out LIVE_loc. compute LIVE_cit = LIVE_cit + 700. /* Egypt is the seventh WAS country, so city numbers start at 701. val label LIVE_cit 701 'Cairo' 702 'Alexandria' 703 'Port Said' 704 'Suez' 711 'Damietta' 712 'Dakahlia' 713 'Sharkia' 714 'Kalyubia' 715 'Kafr El-Sheikh' 716 'Gharbia' 717 'Menoufia' 718 'Behera' 719 'Ismailia' 721 'Giza' 722 'Beni Suef' 723 'Fayoum' 724 'Menya' 725 'Assuit' 726 'Souhag ' 727 'Qena' 728 'Aswan' 731 'Red Sea' 732 'New Valley' 733 'Matroh' 734 'North Sainai' 735 'South Sainai'. * I tried to identify the above cities in 'UNDYB city sizes.xls', but didn't find all of them (e.g. 'Matroh') - perhaps it would be worth looking again, on internet. rename var (hTYPE = LIVEurbn). recode LIVEurbn (1=2)(2=6). val label LIVEurbn 1"city: popn over a million" 2"city" 3"large town or peri-urban" 4"small town" 5"village" 6"rural". *freq hTEAM. /* Could use this to define LIVEzone; I use a simpler version, in 'BORN and LIVEvariables.sps'. *cros hTEAM by hSUPERV. /* These vars are closely related. *freq hRESULT hVISITS hELIG hELIGC. /* No similar var in other WAS surveys. I don't think these worth keeping. rename var (hINTNUM = INT_CODE). rename var (hADDCHK= INT_CHEK). recode INT_CHEK (2=0)(1=2). /* Maybe the checked cases should be INT_CHEK=3, not INT_CHEK=2: CSSA labels not clear. if (wADDCHK=1) INT_CHEK =2. /* Not a very match between hADDCHK and wADDCHK (I don't know why). var label INT_CHEK 'Was interview checked by a (market research organisation) supervisor?'. val label INT_CHEK 0"not checked" 1"accompanied by supervisor" 2"backchecked" 3"saw form" 4"accompanied & backchecked" 5"accompanied & saw form" 6"saw form & backchecked" 7"accompanied, saw form & backchecked". *compute chekMax = max(h00$01 to h00$50). *cros chekMax by hMEMBER. /* OK: identical. * One way to identify if an individual (in 'individual data tmp.sav') is male or female: . rename var (hSAMP = SEXcheck). recode SEXcheck (1=0)(2=1). compute sex = SEXcheck. val label sex SEXcheck 0'male' 1'female'. var label sex 'Gender of respondent'. * Warning: sex will be overwritten in 'derive HH vars from P1 etc.sps'; but when I checked the resulting WAS data (all countries), I found one case of data for * violBeat, for (only) one male respondent - but the domestic violence questionnaire is only answered by women in WAS Egypt. I correct this, by * setting [sex = sexCheck] in file 'derive HH vars from P1 etc.sps', but it may indicate an underlying problem: maybe affecting more than one case. rename var (h03$01=p1_sex)(h03$02=p2_sex)(h03$03=p3_sex)(h03$04=p4_sex)(h03$05=p5_sex) (h03$06=p6_sex)(h03$07=p7_sex)(h03$08=p8_sex)(h03$09=p9_sex)(h03$10=p10sex) (h03$11=p11sex)(h03$12=p12sex)(h03$13=p13sex)(h03$14=p14sex)(h03$15=p15sex) (h03$16=p16sex)(h03$17=p17sex)(h03$18=p18sex)(h03$19=p19sex)(h03$20=p20sex) (h03$21=p21sex)(h03$22=p22sex)(h03$23=p23sex). /*h03$24 to h03$50 are all missing. recode p1_sex to p23sex (9 = -9)(1=0)(2=1). missing value p1_sex to p23sex ( -9). val lab p1_sex to p23sex 0'male' 1'female'. *. compute fem_HEAD = p1_sex. value labels fem_HEAD 0'male' 1'female'. var label fem_HEAD "Female headed household". freq sex. /* 36 cases missing. *cros hRESP by lineNo. /* Inconsistent: which is correct? In the next two blocks, sexChek has more errors than sexChec (in next 2 crosstabs). *if (hRESP= 1) sexChek = p1_sex. *if (hRESP= 2) sexChek = p2_sex. *if (hRESP= 3) sexChek = p3_sex. *if (hRESP= 4) sexChek = p4_sex. *if (hRESP= 5) sexChek = p5_sex. *if (hRESP= 6) sexChek = p6_sex. *if (hRESP= 7) sexChek = p7_sex. *if (hRESP= 9) sexChek = p9_sex. *if (hRESP=11) sexChek = p11sex. *recode sexChek sex (sysmis = -77). *crosstab sexChek by sex. /* sexChek doesn't help with 36 missing cases for sex. *. **if (lineNo = 0) lineNo = hRESP. /* This line adds 21 more cases of sexChec, but 5 of the extra 21 are errors (in next crosstab). *if (lineNo = 1) sexChec = p1_sex. /* lineNo is the number of the respondent (in the list of household members). *if (lineNo = 2) sexChec = p2_sex. *if (lineNo = 3) sexChec = p3_sex. *if (lineNo = 4) sexChec = p4_sex. *if (lineNo = 5) sexChec = p5_sex. *if (lineNo = 6) sexChec = p6_sex. *if (lineNo = 7) sexChec = p7_sex. *if (lineNo = 9) sexChec = p9_sex. *if (lineNo =10) sexChec = p10sex. *if (lineNo =11) sexChec = p11sex. *if (lineNo =17) sexChec = p17sex. *recode sexChec sex (sysmis = -77). *crosstab sexChec by sex. /* sexChec doesn't help with 36 missing cases for sex. recode w501a sex (sysmis = -77). *cros w501a by sex. if (sex = -77 & w501a= -77) sex = 0. if (sex = -77 & w501a> -77) sex = 1. recode w501a sex ( -77 = sysmis). *freq sex. /* 36 missing cases of sex are now known. *cros lineNo by hELIG. /* Ignore lineNo=0: it means nobody in hhold is eligible. rename var (lineNo = resp_ord). /* Use a variable name consistent with other WAS surveys. rename var (h04$01=p1_age)(h04$02=p2_age)(h04$03=p3_age)(h04$04=p4_age)(h04$05=p5_age) (h04$06=p6_age)(h04$07=p7_age)(h04$08=p8_age)(h04$09=p9_age)(h04$10=p10age) (h04$11=p11age)(h04$12=p12age)(h04$13=p13age)(h04$14=p14age)(h04$15=p15age) (h04$16=p16age)(h04$17=p17age)(h04$18=p18age)(h04$19=p19age)(h04$20=p20age) (h04$21=p21age)(h04$22=p22age)(h04$23=p23age). /*h04$24 to h04$50 are all missing. rename var (h05$01=p1_marit)(h05$02=p2_marit)(h05$03=p3_marit)(h05$04=p4_marit)(h05$05=p5_marit) (h05$06=p6_marit)(h05$07=p7_marit)(h05$08=p8_marit)(h05$09=p9_marit)(h05$10=p10marit) (h05$11=p11marit)(h05$12=p12marit)(h05$13=p13marit)(h05$14=p14marit)(h05$15=p15marit) (h05$16=p16marit)(h05$17=p17marit)(h05$18=p18marit)(h05$19=p19marit)(h05$20=p20marit) (h05$21=p21marit)(h05$22=p22marit)(h05$23=p23marit). /*h05$24 to h05$50 are all missing. *if (resp_ord = 1) married = p1_marit. *if (resp_ord = 2) married = p2_marit. *if (resp_ord = 3) married = p3_marit. *if (resp_ord = 4) married = p4_marit. *if (resp_ord = 5) married = p5_marit. *if (resp_ord = 6) married = p6_marit. *if (resp_ord = 7) married = p7_marit. *if (resp_ord = 9) married = p9_marit. *if (resp_ord =10) married = p10marit. *if (resp_ord =11) married = p11marit. *if (resp_ord =17) married = p17marit. *freq married. *freq p1_marit to p23marit. /* Apart from the above lines, I can't think of a use for these 23 vars. * Which way to define married: p1_marit etc, or w104?. rename var (w104 = MARRIED). recode MARRIED (1=1)(2=4)(3=5)(4=6) (9= -9). missing values MARRIED ( -9). *freq MARRIED. compute MARRIED=1. /*To avoid missing data in 'convert relationToHOH to relationToResp.sps'; ok because only married respondents eligible for interview. * See below, for if husband has 2 or more wives. recode resp_ord ( 0 = -9). /* I think zero means 'not eligible for interview'. compute resp_HoH = -4 . if (resp_ord = 1) resp_HoH = 1 . if (resp_ord = 2 & h02$02=2) resp_HoH = 0 . if (resp_ord = 3 & h02$03=2) resp_HoH = 0 . if (resp_ord = 4 & h02$04=2) resp_HoH = 0 . if (resp_ord = 5 & h02$05=2) resp_HoH = 0 . if (resp_ord = 6 & h02$06=2) resp_HoH = 0 . if (resp_ord = 7 & h02$07=2) resp_HoH = 0 . if (resp_ord = 9 & h02$09=2) resp_HoH = 0 . if (resp_ord =10 & h02$10=2) resp_HoH = 0 . if (resp_ord =11 & h02$11=2) resp_HoH = 0 . if (resp_ord =17 & h02$17=2) resp_HoH = 0 . var label resp_HoH "Whether respondent is Head-of-Hhold or spouse". value labels resp_HoH 1"respondent is Head-of-Hhold" -4"neither HoH or spouse" 0"respondent is spouse of HoH". /* This var is in WAS ID. freq resp_HoH. /* Interviewee is almost always HoH or spouse. *freq H02$01 to h02$23. /* HoH is always person 1. *h02$01 etc report relationship of {person 1, or whoever} to HoH, not to resp; so processing is more complex than other WAS countries (apart from Indonesia). rename var (h02$01=p1_r_HOH)(h02$02=p2_r_HOH)(h02$03=p3_r_HOH)(h02$04=p4_r_HOH)(h02$05=p5_r_HOH) (h02$06=p6_r_HOH)(h02$07=p7_r_HOH)(h02$08=p8_r_HOH)(h02$09=p9_r_HOH)(h02$10=p10r_HOH) (h02$11=p11r_HOH)(h02$12=p12r_HOH)(h02$13=p13r_HOH)(h02$14=p14r_HOH)(h02$15=p15r_HOH) (h02$16=p16r_HOH)(h02$17=p17r_HOH)(h02$18=p18r_HOH)(h02$19=p19r_HOH)(h02$20=p20r_HOH) (h02$21=p21r_HOH)(h02$22=p22r_HOH)(h02$23=p23r_HOH). /*h02$24 to h02$50 are all missing. recode p1_r_HOH to p23r_HOH (5=7)(6=10)(7=11)(10=80)(11=5)(12=6)(13=90). value label p1_r_HOH to p23r_HOH 1 "head of household" 2 "wife/husband" 3 "son/daughter" 4 "son-in-law/daughter-in-law" 5 "adopted/foster child" 6 "step child" 7 "grandchild" 8 "brother/sister" 9 "brother-in-law/sister-in-law" 10 "parent" 11 "parent-in-law" 12 "uncle/aunt" 13 "nephew/neice" 14 "cousin" 15 "grandparent" 80 "other relative" 90 "not related" 91 "servant" 98 "don't know" 99 "other unspecified". include 'C:\_WAS\SPSS syntax for all years\convert relationToHOH to relationToResp.sps'. /* This syntax file is for Indonesia & Egypt only. *. *desc p1_r_hoh p1_relat. /* More valid cases of p1_r_hoh than of p1_relat. *desc p2_r_hoh p2_relat. *desc p3_r_hoh p3_relat. * ... to p23r_hoh p3_relat. There's missing data; but I don't see how to improve 'convert relationToHOH to relationToResp.sps' to identify some of these missing cases. *list/cases from 1 to 99/ H06$01 to H06$23. /*This block of variables identifies who is married to who in the household (couple1, couple2, etc); I can't see a use for it yet. *freq H07$01 to H07$23. /*If each person is eligible for interview (age 18+, married, etc - see questionnaire). rename var (h08$01=p1_educ)(h08$02=p2_educ)(h08$03=p3_educ)(h08$04=p4_educ)(h08$05=p5_educ) (h08$06=p6_educ)(h08$07=p7_educ)(h08$08=p8_educ)(h08$09=p9_educ)(h08$10=p10educ) (h08$11=p11educ)(h08$12=p12educ)(h08$13=p13educ)(h08$14=p14educ)(h08$15=p15educ) (h08$16=p16educ)(h08$17=p17educ)(h08$18=p18educ)(h08$19=p19educ)(h08$20=p20educ) (h08$21=p21educ)(h08$22=p22educ)(h08$23=p23educ). /*h08$24 to h08$50 are all missing. * educ is recoded later. compute p1_job = h09$01. compute p2_job = h09$02. compute p3_job = h09$03. compute p4_job = h09$04. compute p5_job = h09$05. compute p6_job = h09$06. compute p7_job = h09$07. compute p8_job = h09$08. compute p9_job = h09$09. compute p10job = h09$10. compute p11job = h09$11. compute p12job = h09$12. compute p13job = h09$13. compute p14job = h09$14. compute p15job = h09$15. compute p16job = h09$16. compute p17job = h09$17. compute p18job = h09$18. compute p19job = h09$19. compute p20job = h09$20. compute p21job = h09$21. compute p22job = h09$22. compute p23job = h09$23. var lab p1_job 'Job code for person 1'. var lab p2_job 'Job code for person 2'. var lab p3_job 'Job code for person 3'. var lab p4_job 'Job code for person 4'. var lab p5_job 'Job code for person 5'. var lab p6_job 'Job code for person 6'. var lab p7_job 'Job code for person 7'. var lab p8_job 'Job code for person 8'. var lab p9_job 'Job code for person 9'. var lab p10job 'Job code for person 10'. var lab p11job 'Job code for person 11'. var lab p12job 'Job code for person 12'. var lab p13job 'Job code for person 13'. var lab p14job 'Job code for person 14'. var lab p15job 'Job code for person 15'. var lab p16job 'Job code for person 16'. var lab p17job 'Job code for person 17'. var lab p18job 'Job code for person 18'. var lab p19job 'Job code for person 19'. var lab p20job 'Job code for person 20'. var lab p21job 'Job code for person 21'. var lab p22job 'Job code for person 22'. var lab p23job 'Job code for person 23'. recode p1_job to p23job (1=15)(2=25)(3=45)(4=25)(5=75)(6=75)(7=35)(8=75)(9=35)(10=35)(11=75)(12=75)(13=29)(14=29)(15=75)(16=92)(17=45) (18=21)(19=35)(20=35)(21=28)(22=75)(23=75)(24=29)(25=35)(26=29)(27=25)(28=92)(29=45)(30=75)(31=15)(32=8)(33=2) (34=3)(35=-8)(36=25)(37=0)(38=75)(39=92)(40=75)(41=40)(42=27)(43=75)(44=sysmis)(45=21)(46=75)(48=28)(49=35). val label p1_job,p2_job,p3_job,p4_job,p5_job,p6_job,p7_job,p8_job,p9_job,p10job, p11job,p12job,p13job,p14job,p15job,p16job,p17job,p18job,p19job,p20job,p21job,p22job,p23job 98 "mid/senior officer/executive", 95 "officer/executive", 92 "junior officer/executive" 86 "manager: 10 employees", 84 "manager:1-9 employees" 83 "manager", 82 "manager: 0 employees", 75 "professional (often self-employed)", 65 "self-employed: unspecified", 59 "shop owner", 51 "petty trader", 45 "supervisory", 40 "civil servant", 35 "clerical/sales", 29 "manual: skilled", 28 "farmer/fishing", 27 "employed: unspecified", 25 "manual: unspecified", 24 "manual: semi-skilled", 21 "manual: unskilled", 15 "student", 9 "housewife: was employed", 8 "housewife: dk if ever employed", 7 "housewife: never employed", 5 "unemployed: was employed", 4 "unemployed: never employed", 3 "unemployed: no details", 2 "unemployed: seeking work", 1 "unemployed: not seeking work", 0 "retired", -8 "too young to be employed", -2 "not disclosed", -1"don't know", -9 "missing/no answer/wild". recode p5_job (50= -9). /* I assume this 1 cases is a typing error. compute p1_ICSE = h09$01. compute p2_ICSE = h09$02. compute p3_ICSE = h09$03. compute p4_ICSE = h09$04. compute p5_ICSE = h09$05. compute p6_ICSE = h09$06. compute p7_ICSE = h09$07. compute p8_ICSE = h09$08. compute p9_ICSE = h09$09. compute p10ICSE = h09$10. compute p11ICSE = h09$11. compute p12ICSE = h09$12. compute p13ICSE = h09$13. compute p14ICSE = h09$14. compute p15ICSE = h09$15. compute p16ICSE = h09$16. compute p17ICSE = h09$17. compute p18ICSE = h09$18. compute p19ICSE = h09$19. compute p20ICSE = h09$20. compute p21ICSE = h09$21. compute p22ICSE = h09$22. compute p23ICSE = h09$23. var lab p1_ICSE 'ICSE (International Classification of Self Employment) for person 1'. var lab p2_ICSE 'ICSE (International Classification of Self Employment) for person 2'. var lab p3_ICSE 'ICSE (International Classification of Self Employment) for person 3'. var lab p4_ICSE 'ICSE (International Classification of Self Employment) for person 4'. var lab p5_ICSE 'ICSE (International Classification of Self Employment) for person 5'. var lab p6_ICSE 'ICSE (International Classification of Self Employment) for person 6'. var lab p7_ICSE 'ICSE (International Classification of Self Employment) for person 7'. var lab p8_ICSE 'ICSE (International Classification of Self Employment) for person 8'. var lab p9_ICSE 'ICSE (International Classification of Self Employment) for person 9'. var lab p10ICSE 'ICSE (International Classification of Self Employment) for person 10'. var lab p11ICSE 'ICSE (International Classification of Self Employment) for person 11'. var lab p12ICSE 'ICSE (International Classification of Self Employment) for person 12'. var lab p13ICSE 'ICSE (International Classification of Self Employment) for person 13'. var lab p14ICSE 'ICSE (International Classification of Self Employment) for person 14'. var lab p15ICSE 'ICSE (International Classification of Self Employment) for person 15'. var lab p16ICSE 'ICSE (International Classification of Self Employment) for person 16'. var lab p17ICSE 'ICSE (International Classification of Self Employment) for person 17'. var lab p18ICSE 'ICSE (International Classification of Self Employment) for person 18'. var lab p19ICSE 'ICSE (International Classification of Self Employment) for person 19'. var lab p20ICSE 'ICSE (International Classification of Self Employment) for person 20'. var lab p21ICSE 'ICSE (International Classification of Self Employment) for person 21'. var lab p22ICSE 'ICSE (International Classification of Self Employment) for person 22'. var lab p23ICSE 'ICSE (International Classification of Self Employment) for person 23'. recode p1_ICSE,p2_ICSE,p3_ICSE,p4_ICSE,p5_ICSE,p6_ICSE,p7_ICSE,p8_ICSE,p9_ICSE,p10ICSE, p11ICSE,p12ICSE,p13ICSE,p14ICSE,p15ICSE,p16ICSE,p17ICSE,p18ICSE,p19ICSE,p20ICSE,p21ICSE,p22ICSE,p23ICSE (20,21,24,43=3)(1=6)(6,28,36,40,41=7)(31,32,33,34,35,37=sysmis)(1 thru 49=1). /* '1 thru 49' means any number not previously mentioned. val lab p1_ICSE,p2_ICSE,p3_ICSE,p4_ICSE,p5_ICSE,p6_ICSE,p7_ICSE,p8_ICSE,p9_ICSE,p10ICSE, p11ICSE,p12ICSE,p13ICSE,p14ICSE,p15ICSE,p16ICSE,p17ICSE,p18ICSE,p19ICSE,p20ICSE,p21ICSE,p22ICSE,p23ICSE 1"employee [state or private]" 2"employer" 3"self-employed" 4"in producer co-op" 5"contributing family worker" 6"trainee/apprentice" 7"employee of the state" 8"employee of private firm" 9"working for a charity". rename var (h09$01=p1_ISCO)(h09$02=p2_ISCO)(h09$03=p3_ISCO)(h09$04=p4_ISCO)(h09$05=p5_ISCO) (h09$06=p6_ISCO)(h09$07=p7_ISCO)(h09$08=p8_ISCO)(h09$09=p9_ISCO)(h09$10=p10ISCO) (h09$11=p11ISCO)(h09$12=p12ISCO)(h09$13=p13ISCO)(h09$14=p14ISCO)(h09$15=p15ISCO) (h09$16=p16ISCO)(h09$17=p17ISCO)(h09$18=p18ISCO)(h09$19=p19ISCO)(h09$20=p20ISCO) (h09$21=p21ISCO)(h09$22=p22ISCO)(h09$23=p23ISCO). /*h09$24 to h09$50 are all missing. *freq p1_ISCO,p2_ISCO,p3_ISCO,p4_ISCO,p5_ISCO,p6_ISCO,p7_ISCO,p8_ISCO,p9_ISCO,p10ISCO, p11ISCO,p12ISCO,p13ISCO,p14ISCO,p15ISCO,p16ISCO,p17ISCO,p18ISCO,p19ISCO,p20ISCO,p21ISCO,p22ISCO,p23ISCO. * NB: no code for 44; contact Cairo University?. recode p1_ISCO,p2_ISCO,p3_ISCO,p4_ISCO,p5_ISCO,p6_ISCO,p7_ISCO,p8_ISCO,p9_ISCO,p10ISCO, p11ISCO,p12ISCO,p13ISCO,p14ISCO,p15ISCO,p16ISCO,p17ISCO,p18ISCO,p19ISCO,p20ISCO,p21ISCO,p22ISCO,p23ISCO (1=934)(2=932)(3=122)(4=829)(5=244)(6=232)(7=529)(8=213)(9=522)(10=522)(11=241)(12=934)(13=749)(14=214)(15=242)(16=347)(17=343) (18=915)(19=411)(20=522)(21=613)(22=323)(23=245)(24=245)(25=511)(26=311)(27=832)(28=244)(29=123)(30=222)(31,32,33,34,35=sysmis) (36=011)(37=sysmis)(38=246)(39=349)(40=231)(41=344)(42=934)(43=341)(44=sysmis)(45=915)(46=244)(48=615)(49=511) (99=sysmis). val lab p1_ISCO,p2_ISCO,p3_ISCO,p4_ISCO,p5_ISCO,p6_ISCO,p7_ISCO,p8_ISCO,p9_ISCO,p10ISCO, p11ISCO,p12ISCO,p13ISCO,p14ISCO,p15ISCO,p16ISCO,p17ISCO,p18ISCO,p19ISCO,p20ISCO,p21ISCO,p22ISCO,p23ISCO 111 'LEGISLATORS' 112 'SENIOR GOVERNMENT OFFICIALS' 113 'TRADITIONAL CHIEFS & HEADS OF VILLAGES' 114 'SENIOR OFFICIALS OF SPECIAL-INTEREST ORGANISATIONS' 119 'LEGISLATORS & SENIOR OFFICIALS NEC' 121 'DIRECTORS & CHIEF EXECUTIVES' 122 'PRODUCTION & OPERATIONS' 123 'OTHER DEPARTMENT MANAGERS' 129 'CORPORATE MANAGERS NEC' 131 'GENERAL MANAGERS' 132 'SPAZA SHOP OWNER*' 133 'SPEBEEN OPERATOR*' 134 'TAVERN *' 135 'CATERING SERVICES *' 136 'LETTING ROOMS/TAKING IN BOARDERS*' 137 'RENTING OF VEHICLES/ARTICLES *' 138 'TRANSPORT OF GOODS/PASENGERS *' 139 'GENERAL MANAGERS NEC' 211 'PHYSICISTS,CHEMISTS & RELATED PROFESSIONALS' 212 'MATHEMATICIANS,STATISTICANS & RELATED PROFESSIONALS' 213 'COMPUTING PROFESSIONALS' 214 'ARCHITECTS, ENGINEERS & RELATED PROFESSIONALS' 219 'PHYSICAL,MATHEMATICAL & ENGINEERING SCIENCE PROFESSIONALS' 221 'LIFE SCIENCE PROFESSIONALS' 222 'HEALTH PROFESSIONAALS (EXECEPT NURSING)' 223 'NURSING & MIDWIFERY PROFESSIONALS' 229 'LIFE SCIENCE & HEALTH PROFESSIONALS NEC' 231 'COLLEGE,UNIVERSITY & HIGHER EDUCATION TEACHING PROFESSIONALS' 232 'SECONDARY EDUCTION TEACHING PROFESSIONALS' 233 'PRIMARY & PRE-PRIMARY EDUCATION TEACHING PROFESSIONALS' 234 'SPECIAL EDUCATION TEACHING PROFESSIONALS' 235 'OTHER TEACHING PROFESSIONALS' 239 'TEACHING PROFESSIONALS NEC' 241 'BUSINESS PROFESSIONALS' 242 'LEGAL PROFESSIONALS' 243 'ARCHIVISTS, LIBRARIANS & RELATED INFORMATION PROFESSIONALS' 244 'SOCIAL SCIENCE & RELATED PROFESSIONALS' 245 'WRITERS & CREATIVE OR PERFORMING ARTISTS' 246 'RELIGIOUS PROFESSIONALS' 249 'OTHER PROFESSIONALS NEC' 311 'PHYSICAL & ENGINEERING SCIENCE TECHNICIANS' 312 'COMPUTER ASSOCIATE PROFFESSIONALS' 313 'OPTICAL & ELECTRONIC EQUIPMENT OPERATORS' 314 'SHIP & AIRCRAFT CONTROLLERS & TECHINICIANS' 315 'SAFETY & QUALITY INSPECTORS' 319 'PHYSICAL & ENGINEERING SCIENCE ASSOCIATE PROFESSIONALS' 321 'LIFE SCIENCE TECHNICIANS & RELATED ASSOCIATE PROFESSIONALS' 322 'MODERN HEALTH ASSOCIATE PROFESSIONALS(EXCEPT NURSING)' 323 'NURSING & MIDWIFERY ASSOCIATE PROFESSIONALS' 324 'TRADITIONAL MEDICINE PRACTITIONERS & FAITH HEALERS' 325 'SANGOMA (WITCHDOCTOR) *' 326 'MUTI-SELLER' 329 'LIFE SCIENCE & HEALTH ASSOCIATE PROFESSIONALS' 331 'PRIMARY EDUCATION TEACHING ASSOCIATE PROFESSIONALS' 332 'PRE-PRIMARY EDUCATION TEACHING ASSOCIATE PROFESSIONALS' 333 'SPECIAL EDUCATION TEACHING ASSOCIATE PROFESSIONALS' 334 'OTHER TEACHING ASSOCIATE PROFESSIONALS' 339 'TEACHING ASSOCIATE PROFESSIONALS NEC' 341 'FINANCE & SALES ASSOCIATE PROFESSIONALS' 342 'BUSINESS SERVICES AGENTS & TRADE BROKERS' 343 'ADMINISTRATIVE ASSOCIATE PROFESSIONALS' 344 'CUSTOMS,TAX & RELATED GOVERNMENT ASSOCIATE PROFESSIONALS' 345 'POLICE INSPECTORS & DETECTIVES' 346 'SOCIAL WORK ASSOCIATE PROFESSIONALS' 347 'ARTISTIC,ENTERTAINMENT & SPORTS ASSOCIATE PROFESSIONALS' 348 'RELIGIOUS ASSOCIATE PROFESSIONALS' 349 'OTHER ASSOCIATE PROFESSIONALS NEC' 411 'SECRETARIES & KEYBOARD- OPERATING CLERKS' 412 'NUMERICAL CLERKS' 413 'MATERIAL-RECORDING & TRANSPORT CLERKS' 414 'LIBRARY,MAIL & RELATED CLERKS' 419 'OTHER OFFICE CLERKS' 421 'CASHIERS, TELLERS & RELATED CLERKS' 422 'CLIENT INFORMATION CLERKS' 429 'CUSTOMER SERVICES CLERKS NEC' 511 'TRAVEL ATTENDATNS & RELATED WORKERS' 512 'HOUSEKEEPING & RESTAURANT SERVICES WORKERS' 513 'PERSONAL CARE & RELATED WORKERS' 514 'OTHER PERSONAL SERVICES WORKERS' 515 'ASTROLOGERS, FORTUNE-TELLERS & RELATED WORKERS' 516 'PROTECTIVE SERVICES WORKERS' 519 'PERSONAL & PROTECTIVE SERVICES WORKERS NEC' 521 'FASHION & OTHER MODELS' 522 'SHOP SALESPERSONS & DEMONSTRATORS' 523 'STALL & MARKET SALESPERSONS' 529 'MODELS,SALESPERSONS & DEMONSTRATORS NEC' 611 'MARKET GARDENERS & CROP GROWERS' 612 'MARKET-ORIENTED ANIMAL PRODUCERS & RELATED WORKERS' 613 'MARKET-ORIENTED CROP & ANIMAL PRODUCERS' 614 'FORESTRY & RELATED WORKERS' 615 'FISHERY WORKERS,HUNTERS & TRAPPERS' 619 'MARKET ORIENTED SKILLED AGRICULTURAL & FISHERY WORKERS' 621 'SUBSISTENCE AGRICULTURAL & FISHERY WORKERS' 629 'SUBSISTENCE AGRICULTURAL & FISHERY WORKERS NEC' 711 'MINERS,SHOTFIRERS,STONE CUTTERS & CARVERS' 712 'BUILDING FRAME & RELATED TRADES WORKERS' 713 'BUILDING FINISHERS & RELATED TRADES WORKERS' 714 'PAINTERS, BUILDING STRUCTURE CLEANERS & RELATED' 719 'EXTRACTION & BUILDING TRADES WORKERS NEC' 721 'METAL MOULDERS,WELDERS,SHEETMETAL,STRUCTURAL-METAL PREPARERS' 722 'BLACKSMITHS,TOOL-MAKERS & RELATED TRADES WORKERS' 723 'MACHINERY MECHANICS & FITTERS' 724 'ELECTRICAL & ELECTRONIC EQUIPMENT MECHANICS & FITTERS' 729 'METAL,MACHINERY & RELATED TRADES WORKERS NEC' 731 'PRECISION WORKERS IN METAL & RELATED MATERIALS' 732 'POTTERS,GLASS-MAKERS & RELATED TRADES WORKERS' 733 'HANDICRAFT WORKERS WOOD,TEXTILE LEATHER & RELATED MATERIALS' 734 'PRINTING & RELATED TRADES WORKERS' 739 'PRECISION,HANDICRAFT,PRINTING & RELATED WORKERS NEC' 741 'FOOD PROCESSING & RELATED TRADES WORKERS' 742 'WOOD TREATERS, CABINET-MAKERS & RELATED TRADES WORKERS' 743 'TEXTILE, GARMENT & RELATED TRADES WORKERS' 744 'PELT,LEATHER & SHOEMAKING TRADES WORKERS' 745 'BUTCHER *' 746 'SOUR MILK PRODUCER' 749 'OTHER CRAFT & RELATED TRADES WORKERS NEC' 811 'MINING-& MINERAL-PROCESSING-PLANT OPERATORS' 812 'METAL-PROCESSING-PLANT OPERATORS' 813 'GLASS,CERAMICS & RELATED PLANT OPERATORS' 814 'WOOD-PROCESSING-& PAPERMAKING-PLANT' 815 'CHEMICAL-PROCESSING-PLANT OPERATORS' 816 'POWER-PRODUCTION & RELATED PLANT OPERATORS' 817 'AUTOMATED-ASSEMBLY-LINE & INDUSTRIAL-ROBOT OPERATORS' 819 'STATIONARY-PLANT & RELATED OPERATORS NEC' 821 'METAL-& MINERAL-PRODUCTS MACHINE OPERATORS' 822 'CHEMICAL-PRODUCTS MACHINE OPERATORS' 823 'RUBBER-& PLASTIC-PRODUCTS MACHINE OPERATORS' 824 'WOOD-PRODUCTS MACHINE OPERATORS' 825 'PRINTING- BINDING-& PAPER-PRODUCTS MACHINE OPERATORS' 826 'TEXTILE-FUR- & LEATHER -PRODUCTS MACHINE OPERATORS' 827 'FOOD & RELATED PRODUCTS MACHINE OPERATORS' 828 'ASSEMBLERS' 829 'OTHER MACHINE OPERATORS & ASSEMBLERS' 831 'LOCOMOTIVE-ENGINE DRIVERS & RELATED WORKERS' 832 'MOTOR-VECHICLE DRIVERS' 833 'AGRICULTURAL & OTHER MOBILE-PLANT OPERATORS' 834 'SHIP DECK CREWS & RELATED WORKERS' 839 'DRIVERS & MOBILE- PLANT OPERATORS NEC' 910 'DOMESTIC WORKERS' 911 'STREET VENDORS & RELATED WORKERS' 912 'SHOE CLEANING & OTHER STREET SERVICES ELEMENTARY OCCUPATIONS' 913 'DOMESTIC & RELATED HELPERS,CLEANERS & LAUDERERS' 914 'BUILDING CARETAKERS, WINDOW & RELATED CLEANERS' 915 'MESSENGERS,PORTERS,DOORKEEPERS & RELATED WORKERS' 916 'GARBAGE COLLECTORS & RELATED LABOURERS' 917 'SCAVENGERS *' 918 'SELLING GOODS ON STREET *' 919 'SALES & SERVICES ELEMENTARY OCCUPATIONS NEC' 921 'AGRICULTURAL,FISHERY & RELATED LABOURERS' 929 'AGRICULTURAL,FISHERY & RELATED LABOURERS NEC' 931 'MINING & CONSTRUCTION LABOURERS' 932 'MANUFACTURING LABOURERS' 933 'TRANSPORT LABOURERS & FREIGHT HANDLERS' 939 'LABOURERS IN MINING CONSTRUCTION MANUF & TRANSPORT NEC' 011 'ARMED FORCES' 934 'OCCUPATION UNSPECIFIED'. * The above values ending with ' *' were added by S.African govt (to the ISCO-88 list); most of them aren't used here, but I use one or two. rename var (h11 = homeType). recode homeType (1=100)(2=99)(3=58)(4=56)(6=50) (9 = -9). val label homeType 0 "street-dweller" 10 "self-built shack: temporary (kuchcha jhuggi)" 20 "self-built shack: permanent (pucca jhuggi)" 25 "self-built shack in a backyard" 30 "home surrounded by animal waste/puddles/refuse/stable" 40 "cortico (tenement) dweller" 43 "garage/ modified garage/ rooms in the back" 45 "traditional hut" 46 "Rondavel/ Zozo hut" 50 "other: unspecified" 55 "caravan or mobile home" 56 "single room" 58 "two rooms" 60 "roomed house (RDP house), or room+parlour" 61 "matchbox type house or 51/9 (3-4 rooms): separate stand/yard" 63 "improved matchbox house on separate stand/yard, or mini-flat" 80 "part of a house/ share a house" 84 "granny flat on this property/ flatlet" 85 "second house/ cottage on this property" 90 "a unit in a block of flats" 97 "semi-detached or joint house" 98 "townhouse or cluster house in complex" 99 "suburban type detached house (2 or more bedrooms)" 100 "OK house/apartment". rename var (h12new = tenure). recode tenure (1=100)(2=90)(3=30)(4=80)(6=50)(7=70)(12=20)(99=sysmis). var labels tenure 'Home is owned or rented'. val labels tenure 100'self owned' 90'owned jointly' 80'owned by family member' 70'buying on mortgage' 50'other: unspecified' 30'rented (contracted)' 20'not self-owned, but no rent paid'. * Material of floor: codes A to H seem to reflect responses on hh questionnaire: * NATURAL FLOOR: *A EARTH/SAND * RUDIMENTARY FLOOR: *B WOOD PLANKS * FINISHED FLOOR: *C PARQUET OR POLISHED WOOD *D CERAMIC/MARBLE TILES *E CEMENT TILES *F CEMENT *G WALL-TO-WALL CARPET *H VINYL *X OTHER. /* If 2 or more flooring materials used, use code for the material which seems less permanent/expensive (based on order used by WAS ID survey). if (h13='X' or h13='?') homeFlor = -4. if (h13='G' or h13='H') homeFlor = 0. /*anything containing C or G or H. if (h13='C' or h13='CD' or h13='CDG' or h13='CG' or h13='D' or h13='DG' or h13='DH') homeFlor = 2. /*anything containing D. if (h13='CDE' or h13='CE' or h13='DE' or h13='DEF' or h13='DEG' or h13='DEH' or h13='DF' or h13='DFG' or h13='EF' or h13='E' or h13='EF' or h13='EFG' or h13='EG' or h13='EH' or h13='EX' or h13='F' or h13='FG') homeFlor = 6. /*anything containing E or F. if (h13='B' or h13='BCE' or h13='BDE' or h13='BE' or h13='BEF' or h13='BEG') homeFlor =10. /*anything containing B. if (h13='A' or h13='AD' or h13='ADE' or h13='AE' or h13='AEF' or h13='AF' or h13='AFG') homeFlor =14. /*anything containing A. var label homeFlor "Main material used for floor". value label homeFlor 0'carpet/vinyl/parquet or polished wood' 1'concrete' 2'ceramic/marble/granite/stone' 3'(red) brick & cement' 4'masonry' 5'asbestos cement' 6'cement/tiles/terazzo' 7'roof tiles' 8'zinc sheets' 9'iron sheets' 10'hardwood/board/plywood' 11'bamboo/plaited bamboo slats' 12'grass thatch' 13'foliage/palm leaves' 14'soil/dirt/mud' -4'other'. *freq x13a x13b x13c x13d x13e x13f x13g x13h x13x. /* I don't think these add anything to the above 'homeFlor' variable. rename var (h14=homeRoom)(h15 = roomSlee). recode homeRoom roomSlee (99= -9). rename var (h16=WATERtap). recode WATERtap (11=100)(12=95)(13=90)(21,22=46)(23=41)(31,32=56)(33=51)(41=10)(51=80)(61=90)(62=70)(63=90)(96=30)(99= -9). val label WATERtap 0 'do not have a water tap' 10 'from stream/river/canal' 15 'from spring' 20 'rain water' 30 'other: unspecified' 40 'open public well: no pump' 41 'open public well (dk if pump)' 42 'open public well: pump' 45 'open private well: no pump' 46 'open private well (dk if pump)' 47 'open private well: pump' 50 'protected public well: no pump' 51 'protected public well (dk if pump)' 52 'protected public well: pump' 55 'protected private well: no pump' 56 'protected private well (dk if pump)' 57 'protected private well: pump' 70 'buy water' 80 'bottled mineral water' 90 'tap in the street' 95 'tap in the yard/plot' 100 'tap in home'. missing val WATERtap (-9). if (h17='?' or h17='X') TOILET = -9 . if (h17='E') TOILET = 0 . if (h17='D') TOILET = 0.5 . if (h17='C') TOILET = 0.8 . if (h17='B' or h17='BC') TOILET = 0.9 . if (h17='A' or h17='AB' or h17='AC') TOILET = 1 . var label TOILET 'Is there a flush toilet/bathroom in the home?'. val label TOILET 0'no' 0.5'toilet outside, e.g. pit' 1'toilet in the house' 0.8'traditional bucket flush toilet' 0.9'traditional tank flush toilet'. missing val TOILET (-9). * There are 4 missing cases for variable TOILET; but these vars don't help. /*freq x17a x17b x17c x17d x17e x17f x17x. rename var (h18=cookType). recode cookType (1=1)(2=2)(3=3)(4=7)(5=5)(6=4)(7=7)(96=99)(99=-9). val label cookType 0'none' 1'electric' 2'gas/LPG' 3'kerosene/paraffin' 4'firewood' 5'charcoal' 6'coal/lignite' 7'dung' 9'solar' 11'electric & LPG' 12'electric & kerosene' 13'LPG & kerosene' 14'electric & LPG & kerosene' 99'cooker (unspecified)' 1.5'gas or electric' 2.5'electric or gas, and kerosene'. /* These labels are for Nigeria: cooker may be gas OR electric. missing val cookType (-9). /* For Kenya 2004, I use cookType value labels for lighting also. *freq cookType. /* I don't see any cases of cooker=solar or cooker=other, in any WAS survey; but leave these labels anyway, for future WAS surveys. rename var (h19a=sp_meatF)(h19b=sp_veget)(h19c =sp_cereB)(h19d=sp_oil) (h19e=sp_dairy)(h19f=sp_insta)(h19g=sp_mSnak)(h19h=sp_other)(h19i=sp_FdTOT). rename var (h19k=sp_trans) (h19l =sp_hHelp)(h19m=sp_lessn) (h19n=sp_medic) (h19o=sp_utili) (h19p=sp_housi)(h19q=sp_leisT) (h19r=sp_paper)(h19s=sp_clean). rename var (h19t =sp_haird) (h19u=sp_educP)(h19v =sp_chari) (h19w=sp_SERVI)(h19y=SP_TOTL). recode sp_meatF to sp_other, sp_trans to sp_lessn,sp_utili,sp_leisT to sp_chari ( 998= -1)( 999= -9). recode sp_FdTOT, sp_medic, sp_housi, sp_SERVI, SP_TOTL (9998= -1)(9999= -9). missing value sp_meatF to sp_other, sp_trans to sp_chari, sp_FdTOT, sp_SERVI,SP_TOTL ( -9 thru -1). *breakd sp_meatF to sp_other, sp_trans to sp_chari. compute sp_FOOD = sp_meatF +sp_veget +sp_cereB +sp_oil +sp_dairy +sp_insta +sp_mSnak +sp_other. *corr sp_FOOD sp_FdTOT. /*Correlation only 0.637; why?. *list /cases from 1 to 55 /sp_meatF to sp_other,sp_FdTOT sp_FOOD. /*sp_meatF+sp_veget+etc often don't add up to sp_FdTOT; I think sp_FdTOT often added wrong. compute sp_S_TOT = sp_trans +sp_hHelp +sp_lessn +sp_medic +sp_utili +sp_housi +sp_leisT +sp_paper +sp_clean +sp_haird +sp_educP +sp_chari. missing value sp_chari (-777). exec. /* Without this line, the next line doesn't work. *. rename var (h20a=sp_cloth)(h20b=sp_educF)(h20c=sp_tFuel)(h20d=sp_repai)(h20e=sp_furni)(h20f=sp_cerem)(h20g=sp_loanR)(h20h=sp_tax)(h20i=sp_famil) (h20j =sp_gifts) (h20k=sp_holid) (h20l=sp_othYr). /* I don't see any use for sp_othYr, so don't keep it. recode sp_cloth sp_educF sp_tFuel sp_repai sp_furni sp_cerem sp_loanR sp_tax sp_famil sp_gifts sp_holid sp_othYr (99998= -1)(99999= -9). missing value sp_cloth sp_educF sp_tFuel sp_repai sp_furni sp_cerem sp_loanR sp_tax sp_famil sp_gifts sp_holid sp_othYr ( -9 thru -1). * The Egypt household questionnaire mentions 'annual spending' in Q2, but should be 'spending in the last six months' (see var labels for variables h20a to h20l). * Hence divide by 6 to convert from 6-month-period to monthly spending. Dividing by 6 makes sp_educF more similar to sp_educP (than dividing by 12). compute sp_cloth = sp_cloth / 6. compute sp_educF = sp_educF / 6. compute sp_tFuel = sp_tFuel / 6. compute sp_repai = sp_repai / 6. compute sp_furni = sp_furni / 6. compute sp_cerem = sp_cerem / 6. compute sp_loanR = sp_loanR / 6. compute sp_tax = sp_tax / 6. compute sp_famil = sp_famil / 6. compute sp_gifts = sp_gifts / 6. compute sp_holid = sp_holid / 6. compute sp_othYr = sp_othYr / 6. *corr sp_educP sp_educF. *desc sp_educP sp_educF. *list /cases from 1 to 55/ sp_educP sp_educF. * h19u & h20b are both about educ. It would be confusing to keep both; sp_educP is for services (fees?), whereas sp_educF mentions books & uniforms. * NOTE there may be overlaps between monthly spending & 6-month-period spending (such as sp_educF & sp_educP). if (sp_educP>-1) sp_educ = sp_educP. if ( sp_educF>-1) sp_educ = sp_educF. if (sp_educP>-1 & sp_educF>-1) sp_educ = (sp_educP + sp_educF)/2. /* Keep sp_educ, not the two separate estimates. compute sp_remit = sp_famil + sp_gifts. /* Keep sp_remit, not the two components. * Personal spending: . if (sex=0) sp_Hmobi = w407a. if (sex=0) sp_Wmobi = w408a. if (sex=1) sp_Hmobi = w408a. if (sex=1) sp_Wmobi = w407a. if (sex=0) sp_Htoba = w407b. if (sex=0) sp_Wtoba = w408b. if (sex=1) sp_Htoba = w408b. if (sex=1) sp_Wtoba = w407b. if (sex=0) sp_Hcars = w407c. if (sex=0) sp_Wcars = w408c. if (sex=1) sp_Hcars = w408c. if (sex=1) sp_Wcars = w407c. if (sex=0) sp_Hleis = w407d. if (sex=0) sp_Wleis = w408d. if (sex=1) sp_Hleis = w408d. if (sex=1) sp_Wleis = w407d. if (sex=0) sp_Hclth = w407e. if (sex=0) sp_Wclth = w408e. if (sex=1) sp_Hclth = w408e. if (sex=1) sp_Wclth = w407e. if (sex=0) sp_Hothr = w407f. if (sex=0) sp_Wothr = w408f. if (sex=1) sp_Hothr = w408f. if (sex=1) sp_Wothr = w407f. recode sp_Hmobi sp_Wmobi sp_Htoba sp_Wtoba sp_Hcars sp_Wcars sp_Hleis sp_Wleis sp_Hclth sp_Wclth sp_Hothr sp_Wothr (9998= -1)(9999= -9). missing values sp_Hmobi sp_Wmobi sp_Htoba sp_Wtoba sp_Hcars sp_Wcars sp_Hleis sp_Wleis sp_Hclth sp_Wclth sp_Hothr sp_Wothr (-9 thru -1). var label sp_Hmobi "Spending by husband/male respondent (per month): mobile phone". var label sp_Wmobi "Spending by wife/female respondent (per month): mobile phone". var label sp_Htoba "Spending by husband/male respondent (per month): tobacco etc". var label sp_Wtoba "Spending by wife/female respondent (per month): tobacco etc". var label sp_Hcars "Spending by husband/male respondent (per month): transport equipment e.g. car". var label sp_Wcars "Spending by wife/female respondent (per month): transport equipment e.g. car". var label sp_Hleis "Spending by husband/male respondent (per month): entertainment". var label sp_Wleis "Spending by wife/female respondent (per month): entertainment". var label sp_Hclth "Spending by husband/male respondent (per month): clothes & shoes". var label sp_Wclth "Spending by wife/female respondent (per month): clothes & shoes". var label sp_Hothr "Spending by husband/male respondent (per month): other". var label sp_Wothr "Spending by wife/female respondent (per month): other". if (sp_chari<0) sp_S_TOT = sp_trans +sp_hHelp +sp_lessn +sp_medic +sp_utili +sp_housi +sp_leisT +sp_paper +sp_clean +sp_haird +sp_educP. * There's lots of missing data for sp_chari, and values are mostly zero or low; assume missing data is (approx) zero? If so, only -1 or -9 or both?. missing val sp_chari (-9 thru -1). *corr sp_S_TOT sp_SERVI. /*Correlation only 0.659: why?. *list /cases from 1 to 55 /sp_trans to sp_chari, sp_S_TOT sp_SERVI. * If sp_trans missing and hh doesn't own a car, sp_trans may be small; but could I justify setting it to zero? Bus fares etc are W407C W407D, but only for resp/spouse. *breakd sp_trans by h21r by h21s. *graph / line mean(sp_FOOD) by SP_TOTL by season. *graph / line mean(sp_haird) by SP_TOTL by season. *graph / line mean(sp_fdTot) by sp_food by season. *list /cases from 1 to 55 / sp_meatF sp_veget sp_cereB sp_oil sp_dairy sp_insta sp_mSnak sp_other sp_FOOD sp_fdTot season. *rename var (h19j = SPpFdCHK ) (h19x = SPpS_CHK). *recode SPpFdCHK, SPpS_CHK (98= -1)(99= -9). *missing value SPpFdCHK, SPpS_CHK ( -9 thru -1). *corr SPpFOOD SPpFdCHK. *corr SPpSERVI SPpS_CHK. *if (SP_TOTL>0) SPpFOOD = 100*sp_FOOD /SP_TOTL. /* Also calculate the above two percentages, to check. *if (SP_TOTL>0) SPpSERVI = 100*sp_SERVI /SP_TOTL. *list/case from 501 to 544/ sp_FdTOT, SP_FOOD SP_SERVI SP_TOTL season. compute SP_TOTAL = SP_FOOD + SP_SERVI. /*Can use this line instead of SP_TOTL. Should SP_TOTAL=SP_TOTL?. *corr SP_TOTAL with SP_TOTL. /* Correlation = 0.838 . recode SP_TOTAL (sysmis = -9). if (SP_TOTAL<0) SP_TOTAL = SP_TOTL. /* This line reduces the number of missing cases. recode SP_TOTAL ( -9 = sysmis). *desc SP_TOTAL SP_TOTL. /* SP_TOTAL is more than SP_TOTL, before I add annual & personal: . if (sp_cloth >0) SP_TOTAL = SP_TOTAL + sp_cloth. /* This & the next 11 lines, are annual spending (converted to monthly). if (sp_educF >0) SP_TOTAL = SP_TOTAL + sp_educF. if (sp_tFuel >0) SP_TOTAL = SP_TOTAL + sp_tFuel. if (sp_repai >0) SP_TOTAL = SP_TOTAL + sp_repai. if (sp_furni >0) SP_TOTAL = SP_TOTAL + sp_furni. if (sp_cerem >0) SP_TOTAL = SP_TOTAL + sp_cerem. if (sp_loanR >0) SP_TOTAL = SP_TOTAL + sp_loanR. if (sp_tax >0) SP_TOTAL = SP_TOTAL + sp_tax. if (sp_famil >0) SP_TOTAL = SP_TOTAL + sp_famil. if (sp_gifts >0) SP_TOTAL = SP_TOTAL + sp_gifts. if (sp_holid >0) SP_TOTAL = SP_TOTAL + sp_holid. if (sp_othYr >0) SP_TOTAL = SP_TOTAL + sp_othYr. if (sp_Hmobi >0) SP_TOTAL = SP_TOTAL + sp_Hmobi. /* This line, and the next 11 lines, are personal spending. if (sp_Wmobi >0) SP_TOTAL = SP_TOTAL + sp_Wmobi. if (sp_Htoba >0) SP_TOTAL = SP_TOTAL + sp_Htoba. if (sp_Wtoba >0) SP_TOTAL = SP_TOTAL + sp_Wtoba. if (sp_Hcars >0) SP_TOTAL = SP_TOTAL + sp_Hcars. if (sp_Wcars >0) SP_TOTAL = SP_TOTAL + sp_Wcars. if (sp_Hleis >0) SP_TOTAL = SP_TOTAL + sp_Hleis. if (sp_Wleis >0) SP_TOTAL = SP_TOTAL + sp_Wleis. if (sp_Hclth >0) SP_TOTAL = SP_TOTAL + sp_Hclth. if (sp_Wclth >0) SP_TOTAL = SP_TOTAL + sp_Wclth. if (sp_Hothr >0) SP_TOTAL = SP_TOTAL + sp_Hothr. if (sp_Wothr >0) SP_TOTAL = SP_TOTAL + sp_Wothr. var label SP_TOTAL 'HH spending (Egyptian Pounds per month): all types of spending'. var label SP_FOOD 'HH spending (Egyptian Pounds per month): all types of food'. var label SP_S_TOT 'HH spending (Egyptian Pounds per month): all service items'. var label sp_cloth 'HH spending (Egyptian Pounds per month): clothes/footwear inc repairs'. var label sp_educP 'HH spending (Egyptian Pounds per month): education for people in household'. var label sp_educF 'HH spending (Egyptian Pounds per month): school fees/uniforms/books'. var label sp_educ 'HH spending (Egyptian Pounds per month): education'. var label sp_tFuel 'HH spending (Egyptian Pounds per month): vehicle running costs'. var label sp_repai 'HH spending (Egyptian Pounds per month): house repairs'. var label sp_furni 'HH spending (Egyptian Pounds per month): furniture (e.g. washing machine)'. var label sp_cerem 'HH spending (Egyptian Pounds per month): family events (e.g. weddings)'. var label sp_loanR 'HH spending (Egyptian Pounds per month): installments/dept repayments'. var label sp_tax 'HH spending (Egyptian Pounds per month): taxes'. var label sp_famil 'HH spending (Egyptian Pounds per month): remittances to the family'. var label sp_remit 'HH spending (Egyptian Pounds per month): remittances/gifts'. var label sp_gifts 'HH spending (Egyptian Pounds per month): gifts'. var label sp_famil 'HH spending (Egyptian Pounds per month): remittances'. var label sp_holid 'HH spending (Egyptian Pounds per month): travel/vacations'. var label sp_othYr 'HH spending (Egyptian Pounds per month): other (than 6-month-spending variables)'. recode h21a to h22e (1=1)(2=0)(9= -9). val label h21a to h22e 1'yes' 0'no'. missing val h21a to h22e (-9). rename var (h21a=electric)(h21b=clock)(h21c=bed)(h21d=radio)(h21e=phone)(h21f=TVbw)(h21g=TVcolour)(h21h=VideoDVD)(h21i=fan). *rename var (h21j=cookType). /*cros cookType by h21j. There's already a variable called cookType, so no need to add this. rename var (h21k=waterHot)(h21l=fridge)(h21m=freezer)(h21n=sewMachi)(h21o=washMacN)(h21p=washMacA)(h21q=bicycle). rename var (h21r=motorcyc)(h21s=car)(h21t=computer)(h21u=mobile)(h21v=dishWash)(h21w=air_cond)(h21x=satelitL)(h21y=satelitN). rename var (h22a=truck)(h22b=livestok)(h22c=farmEqip)(h22d=farmLand)(h22e=secondHm). *cros washMacN by washMacA. /* Suspicious: why would any household want both?. if (washMacN=0) washMach = 0. if (washMacA=0) washMach = 0. if (washMacN=1) washMach = 1. if (washMacA=1) washMach = 1. *cros satelitL by satelitN. /* Suspicious: why would any household want both?. if (satelitL=0) satelite = 0. if (satelitN=0) satelite = 0. if (satelitL=1) satelite = 1. if (satelitN=1) satelite = 1. * New durable goods: . var label clock 'Household owns: clock or watch'. var label bed 'Household owns: bed'. var label videoDVD 'Household owns: video and/or DVD'. var label sewMachi 'Household owns: sewing machine'. var label washMacN 'Household owns: washing machine: non-automatic'. var label washMacA 'Household owns: washing machine: automatic'. var label washMach 'Household owns: washing machine'. var label air_cond 'Household owns: air-conditioner'. var label satelitL 'Household owns: satellite TV: legal'. var label satelitN 'Household owns: satellite TV: illegal'. var label satelite 'Household owns: satellite TV'. var label truck 'Household owns: truck, taxi, van, or bus'. var label livestok 'Household owns: farm livestock'. var label farmEqip 'Household owns: farm equipment'. var label secondHm 'Household owns: commercial/residential building: not own home'. rename var (w102 = LIVE_len)(w103g=LIVEprev). var label LIVE_len "Number of years repondent lived in current residence". var label LIVEprev "Respondent's previous place of residence". recode LIVEprev (99 = -9). missing values LIVEprev ( -9). * 'Migrant' is about whether respondent moved to this city; but in EG, it refers to "current place of residence" - may have moved from elsewhere in this city. if (LIVE_len=95) MIGRANT = 0. if (LIVE_len<95) MIGRANT = 2. *if (LIVE_cit = LIVEprev) MIGRANT = 0. /* don't use this line (if resp moved more than once, may have come from elsewhere). if (LIVE_cit<>LIVEprev) MIGRANT = 3. if (w103 = 5) MIGRANT = 5. /* Respondent previously lived outside Egypt; but may have been born in Egypt. var label MIGRANT "Was respondent born in this city/country?". val label MIGRANT 0"lives in birthplace" 1"in same state as previous home, city unknown" 2"in same country, governorate unknown" 3"lives in different governorate to previous residence" 4"lives outside previous governorate" 5"lives outside previous country". * It would be possible to combine LIVEprev (EG) with BORNcnty (other WAS countries); but might confuse users. rename var (w105=MARRIEDn)(w106m= MARRmnth)(w106y=MARRyear)(w107 = MARrelat). recode MARRmnth MARRyear (99= -9)(98= -1). recode MARRIEDn MARrelat (9= -9). missing values MARRIEDn MARRmnth MARRyear MARrelat ( -9 thru -1). if (MARRyear>-1) MARR_len = MARRyear. if (MARRyear>-1 & MARRmnth>-1) MARR_len = MARRyear + (MARRmnth/12). /* Fractional part: months. var lab MARR_len "Length of (current) marriage, in years". var lab MARRIEDn "Number of times respondent has been married". var lab MARrelat "Did the respondent marry a relative?". *freq w110 w113. /* I don't know what these two variables mean, but they could give more detail to EDUC & EDUCspou. rename var (w109= EDUC). /* EDUC will be recalculated later, using p1_educ etc. if (w108=2) EDUC = 0. rename var (w112= EDUCspou). /* EDUCspou will be recalculated later, using p1_educ etc. if (w111=2) EDUCspou = 0. recode EDUC EDUCspou (0=0) (1=20)(2=40)(3=55)(4=65)(5=80)(6=90) (9= -2)(sysmis= -9). recode p1_educ to p23educ (1=0) (2=10) (3=20)(4=40)(5=55)(6=65)(7=80)(8=90) (9= -2)(sysmis= -99). value label p1_educ to p23educ EDUC EDUCspou 0 "no school/illiterate" 10 "school up to 4 years" 20 "over 4 years primary school" 30 "primary school completed, some secondary" 40 "secondary school, incomplete/preparatory school" 55 "matric/Secondary School Cert/O or A-level" 65 "college not graduate (eg technical)" 72 "college: diploma/secretarial qual" 75 "higher college (Technikon) diploma/degree" 77 "incomplete degree" 80 "graduate/above, general" 90 "postgrad (e.g. MA); graduate professional" 59 "other" -2 "not disclosed" -3 "too young to be at school". * In Indonesia, 'college diploma' means 'college diploma D1/D2'; 'higher college diploma' is 'college diploma D3'. * In Egypt, p1_educ to p23educ=10 was labelled 'nursery school' by Cairo University; =20 labelled 'primary'; =55 labelled 'secondary'; =65 labelled "upper intermediate". * These labels also apply to EDUC_HUS,EDUC_WIF (& maybe others, e.g. EDUC_CWE or EDUC_HOH). educ=35 (school for 5-9 years) changed to =40; =85 to =90. if (h00$01>0 & p1_educ< 0 & p1_age<6) p1_educ=-3. if (h00$02>0 & p2_educ< 0 & p2_age<6) p2_educ=-3. if (h00$03>0 & p3_educ< 0 & p3_age<6) p3_educ=-3. if (h00$04>0 & p4_educ< 0 & p4_age<6) p4_educ=-3. if (h00$05>0 & p5_educ< 0 & p5_age<6) p5_educ=-3. if (h00$06>0 & p6_educ< 0 & p6_age<6) p6_educ=-3. if (h00$07>0 & p7_educ< 0 & p7_age<6) p7_educ=-3. if (h00$08>0 & p8_educ< 0 & p8_age<6) p8_educ=-3. if (h00$09>0 & p9_educ< 0 & p9_age<6) p9_educ=-3. if (h00$10>0 & p10educ< 0 & p10age<6) p10educ=-3. if (h00$11>0 & p11educ< 0 & p11age<6) p11educ=-3. if (h00$12>0 & p12educ< 0 & p12age<6) p12educ=-3. if (h00$13>0 & p13educ< 0 & p13age<6) p13educ=-3. if (h00$14>0 & p14educ< 0 & p14age<6) p14educ=-3. if (h00$15>0 & p15educ< 0 & p15age<6) p15educ=-3. if (h00$16>0 & p16educ< 0 & p16age<6) p16educ=-3. if (h00$17>0 & p17educ< 0 & p17age<6) p17educ=-3. if (h00$18>0 & p18educ< 0 & p18age<6) p18educ=-3. if (h00$19>0 & p19educ< 0 & p19age<6) p19educ=-3. if (h00$20>0 & p20educ< 0 & p20age<6) p20educ=-3. if (h00$21>0 & p21educ< 0 & p21age<6) p21educ=-3. if (h00$22>0 & p22educ< 0 & p22age<6) p22educ=-3. if (h00$23>0 & p23educ< 0 & p23age<6) p23educ=-3. recode p1_educ to p23educ (-99=sysmis). missing values P1_educ,P2_educ,P3_educ,P4_educ,P5_educ,P6_educ,P7_educ,P8_educ,P9_educ,P10educ, P11educ,P12educ,P13educ,P14educ,P15educ,P16educ,P17educ,P18educ,P19educ,P20educ,P21educ,P22educ,P23educ EDUC (-9 thru -1). *if (resp_ord=1) educ_chk = p1_educ. *if (resp_ord=2) educ_chk = p2_educ. /* Could add if resp_ord=3 etc; but these 2 lines cover most cases. *cros educ_chk by educ. /* A very close match. *cros educ_chk by w110. /* Fairly strong link. *cros educ by w110. /* Fairly strong link. * w110 is 'highest grade at that level' - but codes 0 to 7 are unlabelled. Could use w110 to improve accuracy of educ, if could find these labels. rename var (w202 = CONTROL). var label CONTROL "How much control do you have in household decisions?". recode CONTROL (1=0)(2=25)(3=50)(4=75)(5=100) (9= -9). missing values CONTROL (-9 thru -1). value label CONTROL 0 'no control' 15 'little control' 25 'some control' 35 'some control' 50 'equal control' 65 'a lot of control' 75 'most of the control' 85 'most of the control' 100 'complete control'. /*values 25 & 75 are for IN & NG & EG only; 15, 35, 65 & 85 only for other WAS surveys. * Assume zero minutes, if missing data for minutes: most non-missing minutes data are zero. recode W203AH W203BH W203CH W203DH W204AH W204BH W204CH W204DH (98 = -1)(99 = -9). /* hours. recode W203AM W203BM W203CM W203DM W204AM W204BM W204CM W204DM (98 = -1)(99, sysmis = 0). /* minutes. *freq W203Ah W203Bh W203Ch W203Dh W204Ah W204Bh W204Ch W204Dh. /* Many cases of 23 hours childcare. compute checkAge = 15. /* Testing purposes only: definition of 'child', to assess link with for childminding. compute checkKid = 0. if (p1_age -1) choreHUS = 7* W203Am / 60. if (sex=0 & W204Am > -1) choreWIF = 7* W204Am / 60. if (sex=1 & W203Am > -1) choreWIF = 7* W203Am / 60. if (sex=1 & W204Am > -1) choreHUS = 7* W204Am / 60. *. if (sex=0 & W203Bm > -1) leisuHUS = 7* W203Bm / 60. if (sex=0 & W204Bm > -1) leisuWIF = 7* W204Bm / 60. if (sex=1 & W203Bm > -1) leisuWIF = 7* W203Bm / 60. if (sex=1 & W204Bm > -1) leisuHUS = 7* W204Bm / 60. *. if (sex=0 & W203Cm > -1) mind_HUS = 7* W203Cm / 60. if (sex=0 & W204Cm > -1) mind_WIF = 7* W204Cm / 60. if (sex=1 & W203Cm > -1) mind_WIF = 7* W203Cm / 60. if (sex=1 & W204Cm > -1) mind_HUS = 7* W204Cm / 60. *. if (sex=0 & W203Dm > -1) shop_HUS = 7* W203Dm / 60. if (sex=0 & W204Dm > -1) shop_WIF = 7* W204Dm / 60. if (sex=1 & W203Dm > -1) shop_WIF = 7* W203Dm / 60. if (sex=1 & W204Dm > -1) shop_HUS = 7* W204Dm / 60. * If we know hours (but not minutes): . if (sex=0 & W203Ah > -1) choreHUS = 7* W203Ah. if (sex=0 & W204Ah > -1) choreWIF = 7* W204Ah. if (sex=1 & W203Ah > -1) choreWIF = 7* W203Ah. if (sex=1 & W204Ah > -1) choreHUS = 7* W204Ah. *. if (sex=0 & W203Bh > -1) leisuHUS = 7* W203Bh. if (sex=0 & W204Bh > -1) leisuWIF = 7* W204Bh. if (sex=1 & W203Bh > -1) leisuWIF = 7* W203Bh. if (sex=1 & W204Bh > -1) leisuHUS = 7* W204Bh. *. if (sex=0 & W203Ch > -1) mind_HUS = 7* W203Ch. if (sex=0 & W204Ch > -1) mind_WIF = 7* W204Ch. if (sex=1 & W203Ch > -1) mind_WIF = 7* W203Ch. if (sex=1 & W204Ch > -1) mind_HUS = 7* W204Ch. *. if (sex=0 & W203Dh > -1) shop_HUS = 7* W203Dh. if (sex=0 & W204Dh > -1) shop_WIF = 7* W204Dh. if (sex=1 & W203Dh > -1) shop_WIF = 7* W203Dh. if (sex=1 & W204Dh > -1) shop_HUS = 7* W204Dh. * If we know both hours & minutes: . if (sex=0 & W203Ah>-1 & W203Am>-1) choreHUS = 7*(W203Ah + (W203Am / 60) ). if (sex=0 & W204Ah>-1 & W204Am>-1) choreWIF = 7*(W204Ah + (W204Am / 60) ). if (sex=1 & W203Ah>-1 & W203Am>-1) choreWIF = 7*(W203Ah + (W203Am / 60) ). if (sex=1 & W204Ah>-1 & W204Am>-1) choreHUS = 7*(W204Ah + (W204Am / 60) ). *. if (sex=0 & W203Bh>-1 & W203Bm>-1) leisuHUS = 7*(W203Bh + (W203Bm / 60) ). if (sex=0 & W204Bh>-1 & W204Bm>-1) leisuWIF = 7*(W204Bh + (W204Bm / 60) ). if (sex=1 & W203Bh>-1 & W203Bm>-1) leisuWIF = 7*(W203Bh + (W203Bm / 60) ). if (sex=1 & W204Bh>-1 & W204Bm>-1) leisuHUS = 7*(W204Bh + (W204Bm / 60) ). *. if (sex=0 & W203Ch>-1 & W203Cm>-1) mind_HUS = 7*(W203Ch + (W203Cm / 60) ). if (sex=0 & W204Ch>-1 & W204Cm>-1) mind_WIF = 7*(W204Ch + (W204Cm / 60) ). if (sex=1 & W203Ch>-1 & W203Cm>-1) mind_WIF = 7*(W203Ch + (W203Cm / 60) ). if (sex=1 & W204Ch>-1 & W204Cm>-1) mind_HUS = 7*(W204Ch + (W204Cm / 60) ). *. if (sex=0 & W203Dh>-1 & W203Dm>-1) shop_HUS = 7*(W203Dh + (W203Dm / 60) ). if (sex=0 & W204Dh>-1 & W204Dm>-1) shop_WIF = 7*(W204Dh + (W204Dm / 60) ). if (sex=1 & W203Dh>-1 & W203Dm>-1) shop_WIF = 7*(W203Dh + (W203Dm / 60) ). if (sex=1 & W204Dh>-1 & W204Dm>-1) shop_HUS = 7*(W204Dh + (W204Dm / 60) ). missing values choreHUS choreWIF leisuHUS leisuWIF mind_HUS mind_WIF shop_HUS shop_WIF ( -9 thru -1). var label choreHUS 'hours spent on housework (per week): self/husband'. var label choreWIF 'hours spent on housework (per week): self/wife'. var label leisuHUS 'hours spent on leisure (per week): self/husband'. var label leisuWIF 'hours spent on leisure (per week): self/wife'. var label mind_HUS 'hours spent minding children (per week): self/husband'. var label mind_WIF 'hours spent minding children (per week): self/wife'. var label shop_HUS 'hours spent shopping (per week): self/husband'. var label shop_WIF 'hours spent shopping (per week): self/wife'. breakd mind_hus mind_wif /cells mean. /*Gap between men & women much less than I'd expect: compare with next line. *breakd chorehus chorewif /cells mean. * New to Egypt 2006: . rename vars (w301a=TALKwork)(w301b=TALKplan)(w301c=TALKkids)(w301d=TALKmony)(w301e=TALKcomu). recode TALKwork TALKplan TALKkids TALKmony TALKcomu (5= -2)(8= -1)(9= -9)(1=100)(2=50)(3=0). missing values TALKwork TALKplan TALKkids TALKmony TALKcomu (-9 thru -1). value labels TALKwork TALKplan TALKkids TALKmony TALKcomu 100"regularly" 50"sometimes" 0"never" -1"don't know" -2"no answer" -9"missing". var label TALKwork "Does your spouse discuss work with you?". var label TALKplan "Does your spouse discuss future plans with you?". var label TALKkids "Does your spouse discuss your children's activities with you?". var label TALKmony "Does your spouse discuss money with you?". var label TALKcomu "Does your spouse discuss things that happen in the community with you?". rename vars (w302a=at_h_out)(w302b=at_hNegl)(w302c=at_hArgu)(w302d=at_hNSex)(w302e=at_hBurn)(w302f=at_hKeep). recode at_h_out at_hNegl at_hArgu at_hNSex at_hBurn at_hKeep (1=1)(2=0)(8= -1)(9= -9)(5= -2). value label at_h_out at_hNegl at_hArgu at_hNSex at_hBurn at_hKeep 1"yes" 0"no" -1"don't know" -2"no answer" -9"missing". missing value at_h_out at_hNegl at_hArgu at_hNSex at_hBurn at_hKeep (-9 thru -1). var label at_h_out "Dis/agree: it's justified for a man to hit his wife, if she goes out without telling him". var label at_hNegl "Dis/agree: it's justified for a man to hit his wife, if she neglects the children". var label at_hArgu "Dis/agree: it's justified for a man to hit his wife, if she argues with him". var label at_hNSex "Dis/agree: it's justified for a man to hit his wife, if she refuses to have sex with him". var label at_hBurn "Dis/agree: it's justified for a man to hit his wife, if she burns the food". var label at_hKeep "Dis/agree: it's justified for a man to hit his wife, if she doesn't give him her earnings". * at_okHit is a Likert scale - so can't easily compare it with above zero/one variables. rename var (w303a=at_wHapy)(w303b=at_obey)(w303c=at_shame)(w303d=at_w_say)(w303e=at_boost)(w303f=at_wAlow)(w303g=at_roles)(w304=atProles). recode at_obey at_shame at_boost at_wAlow at_roles atProles (9= -9) (8= -1). recode at_wHapy,at_w_say (1=5)(2=4)(3=3)(4=2)(5=1) (9= -9). val lab at_wHapy,at_w_say 5'agree strongly' 4'agree' 3'neither agree/disagree' 2'disagree' 1'disagree strongly' -9'missing'. val lab at_obey at_shame at_boost at_wAlow at_roles atpRoles 1'agree strongly' 2'agree' 3'neither agree/disagree' 4'disagree' 5'disagree strongly' -9'missing' -1"don't know". missing value at_obey at_shame at_boost at_wAlow at_roles atpRoles at_wHapy,at_w_say ( -9 thru -1). * Variable at_wAlow (Egypt) is similar to at_allow (Kenya & Nigeria): I use a different var name for Egypt, because the wording is different. missing values w114 w116 w117 w119 (-88). /* So 9 isn't treated as missing data (temporarily). recode w114 w116 w117 w119 (sysmis= -77)(98= -1)( 9= -9). recode w115 w118 (sysmis= -77)(98= -1)(99= -9). if (w114=2 or w114=3) & (w115<0) w115 = 0. if (w116=2 or w116=3) & (w115<0) w115 = 0. if (w117=2 or w117=3) & (w118<0) w118 = 0. if (w119=2) & (w118<0) w118 = 0. recode w114 w115 w116 w117 w118 w119 ( -77 =sysmis). rename vars (w115=paidResp)(w118=paidSpou). if (sex=0) paid_hus = paidResp. if (sex=0) paid_wif = paidSpou. if (sex=1) paid_wif = paidResp. if (sex=1) paid_hus = paidSpou. var lab paid_hus "Paid hours of work (per week) by husband or male respondent". var lab paid_wif "Paid hours of work (per week) by wife or female respondent". add val label paid_hus paid_wif paidResp paidSpou w114 w116 w117 w119 -1"don't know" -2"refused" -6"not asked in this survey" -8"inapplicable" -9"missing/wild". exec. /* This line is needed, so missing values transferred to paid_hus & paid_wif. missing value paid_hus paid_wif paidResp paidSpou w114 w116 w117 w119 (-9 thru -1). *. *. rename var (w401=earnResp)(w403=earnSpou)(w405=earnOthr). recode earnResp earnSpou earnothr(0=0)(1=50)(2=150) (3=275) (4=425) (5=750) (6=1500) (7=3500) (8=7500) (9=15000)(98=-1)(99=-9)(sysmis=-99). *recode earnResp earnSpou earnothr(0=0)(1=10)(2=141.4)(3=264.6)(4=418.3)(5=707.1)(6=1414.2)(7=3162.3)(8=7071.1)(9=15000)(98=-1)(99=-9)(sysmis=-99). * The above line is an alternative version, using the 'geometric mean' of lower & upper limits of each income band; the values aren't very different to the line above it. if (sex=0) earn_hus = earnResp. if (sex=0) earn_wif = earnSpou. if (sex=1) earn_wif = earnResp. if (sex=1) earn_hus = earnSpou. var label earn_hus "Earnings of husband (L.E. per month)". var label earn_wif "Earnings of wife (L.E. per month)". value labels earn_hus earn_wif earnResp earnSpou earnOthr 0 'NOTHING' 50 'UP TO L.E 100 ' 150 'L.E 101 - L.E 200' 275 'L.E 201 - L.E 350' 425 'L.E 351 - L.E 500' 750 'L.E 501 - L.E 1,000' 1500 'L.E 1,001 - L.E 2,000' 3500 'L.E 2,001 - L.E 5,000' 7500 'L.E 5,001 - L.E10,000' 15000 'OVER L.E10,000' -1 "don't know" -9"missing". if (earn_hus < 0 & paid_hus=0) earn_hus = 0. if (earn_wif < 0 & paid_wif =0) earn_wif = 0. if (earnResp < 0 & w114 > 1) earnResp = 0. if (earnSpou < 0 & w117 > 1) earnSpou = 0. if (earnResp > 0 & w114 < 0) w114 = 1. if (earnSpou > 0 & w117 < 0) w117 = 1. /* Should I keep w114 & w117?. missing values earnResp earnSpou earnOthr earn_hus earn_wif (-9 thru -1). recode earnResp earnSpou earnOthr earn_hus earn_wif ( -99 =sysmis). rename vars (w201a= HEALTsay)(w201b=FINALsay)(w201c=managMon)(w201d=VISITsay)(w201e=FOOD_say)(w201f=CHILDsay). *ename vars (w201a= FINALhea)(w201b=FINALsay)(w201c=FINALday)(w201d=FINALvis)(w201e=FINALeat)(w201f=FINALkid). /* Alternative names. var label HEALTsay 'Person with final say over your own healthcare'. var label FINALsay 'Person with final say over household money'. /* This var is in other WAS surveys. var label managMon 'Person with final say over purchases for daily food needs'. var label VISITsay 'Person with final say over visits to family or friends'. var label FOOD_say 'Person with final say over what food should be cooked'. var label CHILDsay 'Person with final say over taking your child for treatment, if ill'. recode HEALTsay to CHILDsay (6= -2)(9= -9)(1=0)(2=1)(3=2)(4=5)(5=994). if (HEALTsay =0 & sex=0) HEALTsay = 1.1 . if (HEALTsay =0 & sex=1) HEALTsay = 1.2 . if (HEALTsay =1 & sex=0) HEALTsay = 1.2 . if (HEALTsay =1 & sex=1) HEALTsay = 1.1 . if (FINALsay =0 & sex=0) FINALsay = 1.1 . if (FINALsay =0 & sex=1) FINALsay = 1.2 . if (FINALsay =1 & sex=0) FINALsay = 1.2 . if (FINALsay =1 & sex=1) FINALsay = 1.1 . if (managMon =0 & sex=0) managMon = 1.1 . if (managMon =0 & sex=1) managMon = 1.2 . if (managMon =1 & sex=0) managMon = 1.2 . if (managMon =1 & sex=1) managMon = 1.1 . if (VISITsay =0 & sex=0) VISITsay = 1.1 . if (VISITsay =0 & sex=1) VISITsay = 1.2 . if (VISITsay =1 & sex=0) VISITsay = 1.2 . if (VISITsay =1 & sex=1) VISITsay = 1.1 . if (FOOD_say =0 & sex=0) FOOD_say = 1.1 . if (FOOD_say =0 & sex=1) FOOD_say = 1.2 . if (FOOD_say =1 & sex=0) FOOD_say = 1.2 . if (FOOD_say =1 & sex=1) FOOD_say = 1.1 . if (CHILDsay =0 & sex=0) CHILDsay = 1.1 . if (CHILDsay =0 & sex=1) CHILDsay = 1.2 . if (CHILDsay =1 & sex=0) CHILDsay = 1.2 . if (CHILDsay =1 & sex=1) CHILDsay = 1.1 . if (sex=0) finalH_m = w402new. if (sex=1) finalW_m = w402new. if (sex=0) finalW_m = w404new. if (sex=1) finalH_m = w404new. recode finalH_m finalW_m (1=0)(2=1)(3=2) (5=5)(6=5)(99= -9) (sysmis= -99). * This block: syntax for every possible combination - not all lines are needed. It's an experiment, to see if it's similar to finalSay. *if (finalH_m = 1 & finalW_m = 1) finalSy = 0. *if (finalH_m = 2 & finalW_m = 1) finalSy = 3. *if (finalH_m = 3 & finalW_m = 1) finalSy = 2. *if (finalH_m = 6 & finalW_m = 1) finalSy = 994. *if (finalH_m = 1 & finalW_m = 2) finalSy = 3. *if (finalH_m = 2 & finalW_m = 2) finalSy = 1. *if (finalH_m = 3 & finalW_m = 2) finalSy = 2. *if (finalH_m = 6 & finalW_m = 2) finalSy = 997. *if (finalH_m = 1 & finalW_m = 3) finalSy = 2. *if (finalH_m = 2 & finalW_m = 3) finalSy = 2. *if (finalH_m = 3 & finalW_m = 3) finalSy = 2. *if (finalH_m = 6 & finalW_m = 3) finalSy = 994. *if (sex=0) & (finalH_m = 1 & finalW_m = 4) finalSy = 994. *if (sex=1) & (finalH_m = 1 & finalW_m = 4) finalSy = 5. *if (sex=0) & (finalH_m = 2 & finalW_m = 4) finalSy = 5. *if (sex=1) & (finalH_m = 2 & finalW_m = 4) finalSy = 997. *if (finalH_m = 3 & finalW_m = 4) finalSy = 5. *if (finalH_m = 6 & finalW_m = 4) finalSy = 5. *if (finalH_m = 1 & finalW_m = 5) finalSy = 5. *if (finalH_m = 2 & finalW_m = 5) finalSy = 5. *if (finalH_m = 3 & finalW_m = 5) finalSy = 5. *if (finalH_m = 6 & finalW_m = 5) finalSy = 5. *if (finalH_m = 1 & finalW_m = 6) finalSy = 994. *if (finalH_m = 2 & finalW_m = 6) finalSy = 997. *if (finalH_m = 3 & finalW_m = 6) finalSy = 994. *if (finalH_m = 6 & finalW_m = 6) finalSy = 5. *cros finalSay by finalSy. /* Not a close match. if (sex=0) & (finalH_m = 4) finalH_m = 100. if (sex=1) & (finalH_m = 4) finalH_m = 997. if (sex=0) & (finalW_m = 4) finalW_m = 100. if (sex=1) & (finalW_m = 4) finalW_m = 997. if earn_hus=0 & (finalH_m =-99 or finalH_m = -9) finalH_m = -3. if earn_wif =0 & (finalW_m=-99 or finalW_m = -9) finalW_m = -3. recode finalH_m finalW_m (-99 = sysmis). var label finalH_m "Who decides how husband's earnings are spent". var label finalW_m "Who decides how wife's earnings are spent". if (sex=0) & (finalH_m = 0) finalH_m = 1.1 . if (sex=1) & (finalH_m = 0) finalH_m = 1.2 . if (sex=0) & (finalH_m = 1) finalH_m = 1.2 . if (sex=1) & (finalH_m = 1) finalH_m = 1.1 . if (sex=0) & (finalW_m = 0) finalW_m = 1.1 . if (sex=1) & (finalW_m = 0) finalW_m = 1.2 . if (sex=0) & (finalW_m = 1) finalW_m = 1.2 . if (sex=1) & (finalW_m = 1) finalW_m = 1.1 . * If using finalSy, it has same value labels as finalH_m & finalW_m. value label HEALTsay to CHILDsay finalH_m finalW_m 100"Parent" 101"Parent of spouse" 0"Respondent" 1"Respondent's spouse" 994 "self+other(s), e.g. self+child" 997 "other in-law; or spouse & in-law(s)" 1.1"husband", 1.2"wife" 2 "husband+wife together" 3 "husband+wife separately" 5 "other, not just husband & wife" -3 "no earnings" -1 "don't know" -2 "refused" -8 "inapplicable" -9 "missing". missing values HEALTsay to CHILDsay finalH_m finalW_m (-9 thru -1). cros finalH_m finalW_m by season. *Variables w406a to w406f (w406a='interest', w406b='remittances', etc) aren't in questionnaire - I assume the questionnaire is wrong. They seem to be unearned income. recode w406a to w406f (99998= -1)(99999= -9). missing values w406a to w406f (-9, -1). *desc w406a to w406f. rename var (w406a=incInter)(w406b=incRemit)(w406c=incPrope)(w406d=incPensi)(w406e=inc_govt)(w406f=incOther). * Investigate possible ways to reduce missing data in HHincome. compute oldestP = max( p1_age,p2_age,p3_age,p4_age,p5_age,p6_age,p7_age,p8_age,p9_age,p10age, p11age,p12age,p13age,p14age,p15age,p16age,p17age,p18age,p19age,p20age,p21age,p22age,p23age). compute oldestP = trunc(oldestP/5) *5. var label oldestP "Age of oldest household member". *recode incPensi (0 = 0)(else = 1). *breakd incPensi by oldestP. /* Most pensions paid to households where the oldest person is 60+ years old. recode incPensi (sysmis = -99). if (incPensi < 0 & oldestP < 60) incPensi = 0. recode incPensi ( -99 =sysmis). missing values incInter incRemit incPrope incPensi inc_govt incOther ( -9 thru -1). var lab incInter 'Household income from interest'. var lab incRemit 'Household income from relatives outside the household'. var lab incPrope 'Household income from land or other property'. var lab incPensi 'Household income from pension(s)'. var lab inc_govt 'Household income from governmental support'. var lab incOther 'Household income from other sources (not from employment)'. *compute unemploy = 0. *if (p1_job=2 or p2_job=2 or p3_job=2 or p4_job=2 or p5_job=2 or p6_job=2 or p7_job=2 or p8_job=2 or p9_job=2 or p10job=2 or p11job=2 or p12job=2 or p13job=2 or p14job=2 or p15job=2 or p16job=2 or p17job=2 or p18job=2 or p19job=2 or p20job=2 or p21job=2 or p22job=2 or p23job=2) unemploy = 1. *breakd inc_govt by unemploy. /*No link: don't use it to avoid missing data. compute HHincome = earnResp + earnSpou + earnOthr +incInter +incRemit +incPrope +incPensi +inc_govt +incOther. var lab HHincome "Household Income (L.E. per month)". * It's not quite clear from the questionnaire if 'harm' refers to personal spending by SPOUSE, or by (RESPONDENT + SPOUSE). *cros w409 by sex /cells col. *compute spPPhusb = (sp_hmobi + sp_htoba + sp_hcars + sp_hleis + sp_hclth + sp_hothr ) / HHincome. *compute spPPwife = (sp_wmobi + sp_wtoba + sp_wcars + sp_wleis + sp_wclth + sp_wothr ) / HHincome. *breakd spPPhusb spPPwife by sex by w409/cells mean. * I think the above evidence confirms my expectation, that the question refers to personal spending by SPOUSE only. if (sex=0) sp_Wharm = w409. if (sex=1) sp_Hharm = w409. recode sp_Wharm sp_Hharm (9= -9). missing value sp_Wharm sp_Hharm ( -9 thru -1). recode sp_Wharm sp_Hharm (1=0)(2=30)(3=70)(4=100). value label sp_Wharm sp_Hharm 0'no effect' 30'low effect' 70'harmful effect' 100'very harmful effect'. var label sp_Hharm "Extent to which husband's spending harms children's needs". var label sp_Wharm "Extent to which wife's spending harms children's needs". rename var (w410= skipMeal). recode skipMeal (9= -9). missing values skipMeal ( -9 thru -1). recode skipMeal (1=3)(2=2)(3=1)(4=0). val labels skipMeal 0'never' 1'only 1 or 2 months' 2'some months, but not every month' 3'almost every month'. recode w501a w501b w501c w501d (2=1). /* Count person as 'present', whether or not they were 'listening'. if (w501a=3) INT_pres = 1. if (w501b=3) INT_pres = 1. if (w501c=3) INT_pres = 1. if (w501d=3) INT_pres = 1. if (w501a=1) INT_pres = 4. if (w501b=1) INT_pres = 2. if (w501c=1 or w501d=1) INT_pres = 3. if (w501a=1) & (w501b=1) INT_pres = 6. if (w501a=1) & (w501c=1 or w501d=1) INT_pres = 7. if (w501b=1) & (w501c=1 or w501d=1) INT_pres = 5. if (w501a=1) & (w501b=1) & (w501c=1 or w501d=1) INT_pres = 8. var label INT_pres 'If anyone except respondent present at interview, who?'. val label INT_pres 1'respondent only' 2'spouse' 3'other adult(s)' 4'child(ren)' 5'spouse and other' 6'spouse & child(ren)' 7'children/other adult' 8'spouse/child/other'. *cros w501b by w507a5. /* Privacy should have been assured for section 5: this question may refer to previous sections of qnaire. *freq WintNUM. /* Could contact Cairo University, to see if I can find INT_sex from this?. if (w502=1) MARRIED = 7. var label MARRIED "Respondent's marital status". val label MARRIED 0"unmarried (singl/widow/div/sep)" 1"married" 2"cohabiting" 3"single" 4"widowed" 5"divorced" 6"separated" 7"wife of polygamous husband". rename var (w503 = MARRIEDp). recode MARRIEDp (9= -9). if (w502 = 2) MARRIEDp = 1. var lab MARRIEDp "Number of wives respondent's husband has". val lab MARRIEDp 0'unmarried' 1'married: husband has 1 wife' 2'married: husband has 2 wives' 3'married: husband has 3 wives' 4'married: husband has 4 wives'. missing values MARRIEDp (-9 thru -1). * NB: variables where the name starts 'viol' mean respondent experienced violence EVER/AS AN ADULT (comparable with vars in DHS, and other WAS surveys); * variables where the name starts 'vioR' mean respondent experienced violence in the last 6 months (sort of comparable with DHS, which used 'in last 12 months'). rename var (w907b3 = w507b3). /* w907b3 is clearly numbered wrong: should be w507b3, from the order variables are saved. recode w505 w507a1 w507a2 w507a3 w507a4 w507a5 w507a6 w507a7 w507a8 w507a9 w507a10 (1=1)(2=0) (9= -9). *freq w505 w507a1 w507a2 w507a3 w507a4 w507a5 w507a6 w507a7 w507a8 w507a9 w507a10. /* Lower prevalence than DHS (1995 or 2005). recode w505 (3=sysmis). /* One case, unlabelled. rename var (w505= viol_hit). if (w506=2) viol_hit = 0.5 . if (w506=1) viol_hit = 7.5 . *. rename var (w507a1= violHumi). if (w507b1=2) violHumi = 0.5 . if (w507b1=1) violHumi = 7.5 . rename var (w507a2= violThre). if (w507b2=2) violThre = 0.5 . if (w507b2=1) violThre = 7.5 . rename var (w507a3= violPush). if (w507b3=2) violPush = 0.5 . if (w507b3=1) violPush = 7.5 . rename var (w507a4= violSlap). if (w507b4=2) violSlap = 0.5 . if (w507b4=1) violSlap = 7.5 . rename var (w507a5= violPunc). if (w507b5=2) violPunc = 0.5 . if (w507b5=1) violPunc = 7.5 . rename var (w507a6= violKick). if (w507b6=2) violKick = 0.5 . if (w507b6=1) violKick = 7.5 . rename var (w507a7= violBurn). if (w507b7=2) violBurn = 0.5 . if (w507b7=1) violBurn = 7.5 . rename var (w507a8= violTkni). if (w507b8=2) violTkni = 0.5 . if (w507b8=1) violTkni = 7.5 . rename var (w507a9= violKnif). if (w507b9=2) violKnif = 0.5 . if (w507b9=1) violKnif = 7.5 . rename var (w507a10= violRape). if (w507b10=2) violRape = 0.5 . if (w507b10=1) violRape = 7.5 . var label violHumi 'Has husband done this to you? Humiliate you in front of other people'. var label violThre 'Has husband done this to you? Threaten you or someone close, with harm'. var label violPush 'Has husband done this to you? Push or shake you, or throw something at you'. var label violSlap 'Has husband done this to you? Slap you, or twist your arm'. var label violPunc 'Has husband done this to you? Punch you, with fist or something that could hurt'. var label violKick 'Has husband done this to you? Kick or drag you'. var label violBurn 'Has husband done this to you? Try to strangle or burn you'. var label violTkni 'Has husband done this to you? Threaten you with a knife or other weapon'. var label violKnif 'Has husband done this to you? Attack you with a knife or other weapon'. var label violRape 'Has husband done this to you? Physically force to to have sexual intercourse'. *recode violHumi violThre violPush violSlap violPunc violKick violBurn violTkni violKnif violRape viol_hit (0.1 thru hi=1). *freq violHumi violThre violPush violSlap violPunc violKick violBurn violTkni violKnif violRape viol_hit. /* To compare with DHS. *. * Now, the same variables but focusing on the last 6 months only (variable labels w507b1 etc say "last 12 months", but it says "last 6 months" on the questionnaire). compute vioR_hus = viol_hit. compute vioRHumi = violHumi. compute vioRThre = violThre. compute vioRPush = violPush. compute vioRSlap = violSlap. compute vioRPunc = violPunc. compute vioRKick = violKick. compute vioRBurn = violBurn. compute vioRTkni = violTkni. compute vioRKnif = violKnif. compute vioRRape = violRape. if (w506 =3) vioR_hus = 0 . /* Convert from EVER experienced violence, to experienced violence LAST 12 MONTHS. if (w507b1 =3) vioRHumi = 0 . if (w507b2 =3) vioRThre = 0 . if (w507b3 =3) vioRPush = 0 . if (w507b4 =3) vioRSlap = 0 . if (w507b5 =3) vioRPunc = 0 . if (w507b6 =3) vioRKick = 0 . if (w507b7 =3) vioRBurn = 0 . if (w507b8 =3) vioRTkni = 0 . if (w507b9 =3) vioRKnif = 0 . if (w507b10 =3) vioRRape = 0 . var label vioR_hus 'Has wife hit her husband in the last 6 months?'. var label violHumi 'Has husband ever done this to you? Humiliate you in front of other people'. var label violThre 'Has husband ever done this to you? Threaten you or someone close, with harm'. var label violPush 'Has husband ever done this to you? Push or shake you, or throw something at you'. var label violSlap 'Has husband ever done this to you? Slap you, or twist your arm'. var label violPunc 'Has husband ever done this to you? Punch you, with fist or something that could hurt'. var label violKick 'Has husband ever done this to you? Kick or drag you'. var label violBurn 'Has husband ever done this to you? Try to strangle or burn you'. var label violTkni 'Has husband ever done this to you? Threaten you with a knife or other weapon'. var label violKnif 'Has husband ever done this to you? Attack you with a knife or other weapon'. var label violRape 'Has husband ever done this to you? Physically force you to have sexual intercourse'. var label vioRHumi 'Has husband done this to you in the last 6 months? Humiliate you in front of other people'. var label vioRThre 'Has husband done this to you in the last 6 months? Threaten you or someone close, with harm'. var label vioRPush 'Has husband done this to you in the last 6 months? Push or shake you, or throw something at you'. var label vioRSlap 'Has husband done this to you in the last 6 months? Slap you, or twist your arm'. var label vioRPunc 'Has husband done this to you in the last 6 months? Punch you, with fist or something that could hurt'. var label vioRKick 'Has husband done this to you in the last 6 months? Kick or drag you'. var label vioRBurn 'Has husband done this to you in the last 6 months? Try to strangle or burn you'. var label vioRTkni 'Has husband done this to you in the last 6 months? Threaten you with a knife or other weapon'. var label vioRKnif 'Has husband done this to you in the last 6 months? Attack you with a knife or other weapon'. var label vioRRape 'Has husband done this to you in the last 6 months? Physically force you to have sexual intercourse'. val label violHumi violThre violPush violSlap violPunc violKick violBurn violTkni violKnif violRape viol_hit vioRHumi vioRThre vioRPush vioRSlap vioRPunc vioRKick vioRBurn vioRTkni vioRKnif vioRRape vioR_hus 0'no' 0.5'yes: sometimes' 1'yes' 7.5'yes: often'. missing values violHumi violThre violPush violSlap violPunc violKick violBurn violTkni violKnif violRape viol_hit vioRHumi vioRThre vioRPush vioRSlap vioRPunc vioRKick vioRBurn vioRTkni vioRKnif vioRRape vioR_hus (-9 thru -1). if (violPush = 0) viol_wif = 0. /* This set of lines (for v000=EG4 only): ever experienced violence. if (violSlap = 0) viol_wif = 0. if (violPunc = 0) viol_wif = 0. if (violKick = 0) viol_wif = 0. if (violBurn = 0) viol_wif = 0. if (violKnif = 0) viol_wif = 0. *if (violRape = 0) viol_wif = 0. if (violPush > 0) viol_wif = 1. if (violSlap > 0) viol_wif = 1. if (violPunc > 0) viol_wif = 1. if (violKick > 0) viol_wif = 1. if (violBurn > 0) viol_wif = 1. if (violKnif > 0) viol_wif = 1. *if (violRape > 0) viol_wif = 1. /* This would be in what DHS call 'physical or sexual violence'. if (viol_wif = 0) vioR_wif = 0. /* This set of lines: violence in the last 6 months. if (vioRPush = 0) vioR_wif = 0. if (vioRSlap = 0) vioR_wif = 0. if (vioRPunc = 0) vioR_wif = 0. if (vioRKick = 0) vioR_wif = 0. if (vioRBurn = 0) vioR_wif = 0. if (vioRKnif = 0) vioR_wif = 0. *if (vioRRape = 0) vioR_wif = 0. if (vioRPush > 0) vioR_wif = 1. if (vioRSlap > 0) vioR_wif = 1. if (vioRPunc > 0) vioR_wif = 1. if (vioRKick > 0) vioR_wif = 1. if (vioRBurn > 0) vioR_wif = 1. if (vioRKnif > 0) vioR_wif = 1. *if (vioRRape > 0) vioR_wif = 1. /* This would be in what DHS call 'physical or sexual violence'. var lab viol_wif "Has respondent ever been hit by her spouse/partner?". var lab vioR_wif "Was the respondent hit in the last 6 months, by her spouse/partner?". val lab vioR_wif viol_wif 0 'no' 1 'yes'. *freq vioR_wif viol_wif. /* This is lower prevalence than DHS 2005: I can't tell why. compute violHitB = viol_wif. /* Violence section only answered by women, in WAS Egypt. * In syntax file 'convert Kenya2004 to WAS format.SPS', I explore some alternative definitions of violence - including respondents' viewpoints. *. * This is the definition of "severe" violence used in DHS Egypt 2005: violence by strangling/burning, threatening with a weapon, or using a weapon. if (violBurn =0) violBeat = 0. if (violTkni =0) violBeat = 0. if (violKnif =0) violBeat = 0. if (violBurn >0) violBeat = 1. if (violTkni >0) violBeat = 1. if (violKnif >0) violBeat = 1. *. if (viol_hit = 0) violence = 0. if (violHitB = 0) violence = 0. if (viol_hit > 0) violence = viol_hit. if (violHitB > 0) violence = violHitB. if (viol_hit > 0 & violHitB > 0) violence = max( viol_hit, violHitB). var label viol_hit 'Have you hit your partner?'. var label violHitB 'Have you been hit by your partner?'. var label violence 'Has there been domestic violence in this household?'. var label violBeat 'Have you been beaten (i.e. severe violence used) by your partner?'. val label violence viol_hit,violHitB violBeat 0'no' 0.5'yes: sometimes' 1'yes' 7.5'yes: often'. missing values violence viol_hit,violHitB violBeat (-9 thru -1). * viol_hus & viol_wif will be defined later (in 'derived_variables.sps'). Note that only women are asked about domestic violence (in WAS Egypt). *cros violBeat by sex. *cros violBeat by SEXcheck. *Don't rename var w509a as violMony, because I already have a var of this name (in WAS Kenya). rename vars (w509a=violSpen)(w509b=violChil)(w509c=violWork). /* Don't add (w509d=violOthr) because almost all cases missing. recode violSpen violChil violWork (1=1)(2=0)(5= -8)(8= -1)(9= -9) (sysmis = -99). if (violHitB=0) & (violSpen < -8) violSpen = -8. if (violHitB=0) & (violChil < -8) violChil = -8. if (violHitB=0) & (violWork < -8) violWork = -8. value labels violSpen violChil violWork 1'yes' 0'no' -1"don't know" -8"inapplicable" -9"missing/wild [e.g. no answer]". recode violSpen violChil violWork ( -99 =sysmis). missing values violSpen violChil violWork (-9 thru -1). rename vars (w504a=illPermi)(w504b=illMoney)(w504c=illDista)(w504d=illTrans)(w504e=illAlone)(w504f=illFemal)(w504g=illNeedH). recode illPermi illMoney illDista illTrans illAlone illFemal illNeedH (3=0)(2=1)(1=2)(9= -9). missing values illPermi illMoney illDista illTrans illAlone illFemal illNeedH ( -9 thru -1). value labels illPermi illMoney illDista illTrans illAlone illFemal illNeedH 0'no problem' 1'small problem' 2'big problem'. var label illPermi "May prevent respondent getting treatment, if sick: permission to go". var label illMoney "May prevent respondent getting treatment, if sick: cost of treatment". var label illDista "May prevent respondent getting treatment, if sick: distance to health facility". var label illTrans "May prevent respondent getting treatment, if sick: having to take transport". var label illAlone "May prevent respondent getting treatment, if sick: not wanting to go out alone". var label illFemal "May prevent respondent getting treatment, if sick: maybe no female health provider". var label illNeedH "May prevent respondent getting treatment, if sick: husband's help (kids/transport)". rename vars (w510 = canGoOut)(w511=canGoMkt)(w512=canGoHlt)(w513=canGoVis)(w514=canGoRel). recode canGoOut canGoMkt canGoHlt canGoVis canGoRel (4=0)(3=30)(2=50)(1=100) (5= -8)(9= -9). value labels canGoOut canGoMkt canGoHlt canGoVis canGoRel 0"can't go out at all" 30"can go with another adult" 50"can go with children" 100"can go alone". missing values canGoOut canGoMkt canGoHlt canGoVis canGoRel ( -9 thru -1).