* WAS SA 2000: process, before merging with WAS surveys in other countries. get file 'c:\_was\2000 S. Africa\raw data\sect-e2.sav'. * INTERVIEW DETAILS. compute ID = 1. if (lag(ID)>0) ID =lag(ID)+1. * Anneke's e-mail said fieldwork was 4th October to 7th November; assume all were in October. compute INT_YEAR = 2000. compute INT_MNTH = 10. var label INT_year 'Year of interview'. var label INT_mnth 'Month of interview'. rename var (weight=INTweigt). string BORNstat (a2). compute LIVE_cit = metArea + 20. var label LIVE_cit 'City where respondent lives'. recode comSiz, metArea (-99.99=-8). var lab BORNstat 'State where respondent was born'. * Convert to Ruhlen's system to classify languages: see 'Ruhlen language classification values.xls'. rename var (langh = INT_lang). /* nb: langh is 'home language' - I assume this was used for interview. *freq INT_lang. * Swazi is written "Swati" in 'Ruhlen language classification.xls', but EncyclopediaBritannica (17: p.66) indicates * there are 4 languages in Nguni, so it's clear that Ruhlen's "Swati" means "Swazi". Markinor put Indian in 'other'. recode INT_lang (1=60208009.02) ( 2=60208008.02) ( 3=20202331.02) ( 4=20202331.01) (5=20202330.02) ( 6=20202330.03) ( 7=20202330.01) ( 8=20202332.03) (9=20202329.01) (10=20202331.03) (11=20202331.04) (12= -9). rename var (d12= ETHNIC). *cros INT_lang by ETHNIC. /*about 75% of 'coloured' speak Afrikaans,the rest English; put Afrikaans. recode ETHNIC (1=60208005) (2=20202000)(3=60208008.02)(4=60203004). val lab INT_lang, ETHNIC 20202000.00 "NIGER-KORDOFANIAN {NIGER-CONGO} NIGER-CONGO: S.Africa black" 20202329.01 "NIGER-KORDOFANIAN {NIGER-CONGO} NIGER-CONGO: Venda" 20202330.01 "NIGER-KORDOFANIAN {NIGER-CONGO} NIGER-CONGO: Tswana" 20202330.02 "NIGER-KORDOFANIAN {NIGER-CONGO} NIGER-CONGO: Northern Sotho" 20202330.03 "NIGER-KORDOFANIAN {NIGER-CONGO} NIGER-CONGO: Southern Sotho" 20202331.01 "NIGER-KORDOFANIAN {NIGER-CONGO} NIGER-CONGO: Xhosa" 20202331.02 "NIGER-KORDOFANIAN {NIGER-CONGO} NIGER-CONGO: Zulu" 20202331.03 "NIGER-KORDOFANIAN {NIGER-CONGO} NIGER-CONGO: Swazi" 20202331.04 "NIGER-KORDOFANIAN {NIGER-CONGO} NIGER-CONGO: Ndebele" 20202332.03 "NIGER-KORDOFANIAN {NIGER-CONGO} NIGER-CONGO: Tsonga/Shangaan" 60203004.00 "India (details not known)" 60208005.00 "white (unspecified)" 60208008.02 "INDO-HITTITE {INDO-EUROPEAN} GERMANIC: Afrikaans" 60208009.02 "INDO-HITTITE {INDO-EUROPEAN} GERMANIC: English" -9 "other (unspecified)". * To save disk space, compress two language variables into one. compute L_Englis = LANGr01 + 2*(LANGu01). compute L_Afrika = LANGr02 + 2*(LANGu02). compute L_Zulu = LANGr03 + 2*(LANGu03). compute L_Xhosa = LANGr04 + 2*(LANGu04). compute L_NSotho = LANGr05 + 2*(LANGu05). compute L_SSotho = LANGr06 + 2*(LANGu06). compute L_Tswana = LANGr07 + 2*(LANGu07). compute L_Tsonga = LANGr08 + 2*(LANGu08). compute L_Venda = LANGr09 + 2*(LANGu09). compute L_Swazi = LANGr10 + 2*(LANGu10). compute L_Ndebel = LANGr11 + 2*(LANGu11). compute L_other = LANGr12 + 2*(LANGu12). var label L_Englis 'Know language: English'. var label L_Afrika 'Know language: Afrikaans'. /* first of South African languages. var label L_Zulu 'Know language: Zulu'. var label L_Xhosa 'Know language: Xhosa'. var label L_NSotho 'Know language: N. Sotho'. var label L_SSotho 'Know language: S. Sotho'. var label L_Tswana 'Know language: Tswana'. var label L_Tsonga 'Know language: Tsonga/Shangaan'. var label L_Venda 'Know language: Venda'. var label L_Swazi 'Know language: Swazi'. var label L_Ndebel 'Know language: Ndebele'. /* last of South African languages. var label L_other 'Know language: other(s)'. val lab L_Englis L_Afrika L_Zulu L_Xhosa L_NSotho L_SSotho L_Tswana L_Tsonga L_Venda L_Swazi L_Ndebel L_other 0"can't read this langauge" 1"can read this language" 2"understand it, but can't read it" 3"can both read & understand it". *freq L_Englis L_Afrika L_Zulu L_Xhosa L_NSotho L_SSotho L_Tswana L_Tsonga L_Venda L_Swazi L_Ndebel L_other. * There should be no with 1, i.e. read the language but don't understand it; but there are a few (maybe typos?). compute literate = langr13. var label literate "Respondent's literacy". val label literate 0"can read at least 1 language" 1"can't read any language". recode MARSTAT (2=1)(3=2)(1=3)(4=4)(5=5)(6=6)(7= -2). val lab MARSTAT 1'married' 2'cohabiting' 3'single' 4'widowed' 5'divorced' 6'separated'. rename var (MARSTAT=married)(q1 = resp_hoh)(gender = sex)(q2h_sex=fem_head). *cros sex by fem_head by resp_hoh. /*Imperfect match, even if respondent is head-of-hh. recode sex, fem_head, q2s_sex (1=0)(2=1)(else=sysmis). val lab sex, fem_head, q2s_sex 0'male' 1'female'. recode resp_hoh (1=1)(2=0)(3= -4)( -99.99= -5). val labels resp_hoh 1'yes' 0'no' -4"Does not know anything about the household" -5"not in rural sample". freq resp_hoh. *compute age_gp=q2s_age. /* Could convert q2s_age to temporary var comparable with variable 'age'. *recode age_gp (16,17=1)(18,19=2)(20 thru 24=3)(25 thru 29=4)(30 thru 34=5 )(35 thru 39=6) * (40 thru 44=7)(45 thru 49=8)(50 thru 54=9)(55 thru 59=10)(60 thru 64=11)(65 thru 97=12)(else=sysmis). *Almost perfect match between age & ageGroup, but 1 case [d13=99, resp_hoh=1] missing data. rename vars (age = ageGroup)(d13=age)(q2h_age=age_head). recode age_head (0=sysmis). if (ageGroup=8 & age=99 & resp_hoh=1) age=47. /*Put at the midpoint of range 45 - 49. recode age,age_head,q2s_age (99= -1) (98= -2). /*Labels 98, 99: on fax from Markinor. recode q2h_inc, q2s_inc (99999= -1)(99998= -2)(99997= -3). /*Label 99997 etc: fax from Markinor. recode q2h_edu, q2s_edu ( -99.99, sysmis= -9). missing val q2h_inc, q2s_inc, age, age_head, q2s_age, q2h_edu,q2s_edu ( -9 thru -1). *See fax: if 'spouse age=0',no spouse. Even if there's data on spouse,maybe not spouse of resp (e.g. father's spouse). if (q2s_age=0) q2s_sex = -9. /*See fax: if 'spouse age=0',no spouse. if (q2s_age=0) q2s_edu = -9. if (q2s_age=0) q2s_inc = -9. *cros q2s_age by q3sp_1. /*The above logic applies here too, so set -9. if (q2s_age=0) q3sp_1 = -9. if (q2s_age=0) q3sp_2 = -9. if (q2s_age=0) q3sp_3 = -9. if (q2s_age=0) q3sp_4 = -9. if (q2s_age=0) q3sp_5 = -9. if (q2s_age=0) q3sp_6 = -9. recode q2s_age (0 = -9). missing val q3sp_1 q3sp_2 q3sp_3 q3sp_4 q3sp_5 q3sp_6 q2s_sex q2s_edu q2s_inc q2s_age (-9 thru -1). * Including only married respondents is not the only possible way - perhaps an unmarried child could have reported on * both of parents. But the Markinor questionnaire says "PERSON 1 PERSON 2" (written, on the fax): I suspect that if * respondent isn't married, s/he may have reported on themself and on any other household member (e.g. a parent). compute couple= 0. if (married=1 or married=2) & (q2s_sex > -1) couple= 1. if (married=1 or married=2) & (q2s_age > 0) couple= 1. if (married=1 or married=2) & (q2s_edu > -1) couple= 1. if (married=1 or married=2) & (q2s_inc > -1) couple= 1. if (married=1 or married=2) & (q3sp_1 > -1) couple= 1. if (married=1 or married=2) & (q3sp_2 > -1) couple= 1. if (married=1 or married=2) & (q3sp_3 > -1) couple= 1. if (married=1 or married=2) & (q3sp_4 > -1) couple= 1. if (married=1 or married=2) & (q3sp_5 > -1) couple= 1. if (married=1 or married=2) & (q3sp_6 > -1) couple= 1. compute homosex = 0. if (fem_head = q2s_sex) & (couple=1) homosex = 1. *cros married by homosex. /*2 of 8 homosexuals married; presume typos. if (homosex=1) couple= 0. *cros married by couple. *. * Problem: if resp_hoh=1, respondent is head-of-household; * if resp_hoh=2, respondent MAY be spouse of head-of-household, but may not be. * Can we assume person 2 ('spouse/partner') is the spouse of the head-of-household? * Answer: assume data refer to spouses if 'couple=1' (married/cohabit; not homosexual). I exclude homosexuals * because the questionnaire refers to (time-use, earnings, etc of) husb & wife. *if (couple=1) ageDiff = age_head - q2s_age. *if (ageDiff< -16 or ageDiff>16) and (couple=1) couple = 2. *recode ageDiff q9_6 (sysmis= -77). *recode q9_6 (1 thru 5=3). *cros ageDiff by q9_6 by couple. * In many households, there's a big age-gap between partners (ageDiff): maybe parent&child, or another relationship. * I experimented with removing any 'couple' if the age gap between husband & wife is over 16 years. But I found that * even with age gap over 16 years, all respondents answer question q9_6 which refers to 'partner'. So keep all cases. if (couple=1) fem_spou = q2s_sex. if (couple=1) age_spou = q2s_age. if (couple=1) inc_spou = q2s_inc. if (resp_hoh=2 & couple=1 & sex=1) age_hus = age_spou. if (resp_hoh=2 & couple=1 & sex=0) age_wif = age_spou. if ((resp_hoh=1 or resp_hoh=0) & sex=1 & couple=1) age_hus = age_spou. if ((resp_hoh=1 or resp_hoh=0) & sex=0 & couple=1) age_wif = age_spou. if ((resp_hoh=1 or resp_hoh=0) & sex=0) age_hus = age. if ((resp_hoh=1 or resp_hoh=0) & sex=1) age_wif = age. if (resp_hoh=1 & fem_head=0) age_hus = age_head. if (resp_hoh=1 & fem_head=1) age_wif = age_head. var lab age_hus 'Age of husband (or male respondent)'. var lab age_wif 'Age of wife (or female respondent)'. var lab age_spou 'Age of spouse of respondent'. desc age_hus, age_wif. *compute age_dif = age_head - age_spou. *compute age_diff = age_hus - age_wif. *desc age_dif age_diff. *breakd age_head, age_spou by fem_head /cells mean. *breakd age_dif by fem_head /cells mean count. *breakd age_dif by sex /cells mean count. var lab fem_spou "Gender of spouse of respondent". val lab fem_spou 0'male' 1'female'. if (resp_hoh=1) EDUC = q2H_EDU. if (resp_hoh=0) EDUC = q2S_EDU. if (couple=1) EDUCspou = q2S_EDU. if (resp_hoh=1) EDUCspou = q2S_EDU. if (resp_hoh=0) EDUCspou = q2H_EDU. var lab EDUCspou 'Education of spouse'. * This information from the S.Africa census (from website www.statssa.gov.za/census01/census96/HTML/Metadata/Metadta/summarz2.html#12 downloaded 1st May 2006). *"South Africa has twelve years of formal schooling. These are currently referred to as Grade 1 to Grade 12. In some cases a preparatory year, Grade 0, is also available * for children who have not yet started formal schooling. Prior to the introduction of the new grades there were a number of different systems for referring to the different * school years. One system referred to Grades 1 and 2 as sub-standards A and B, and Grades 3-12 as standards 1 to 10. Another system referred to the last five years * as Forms 1-5. In all systems the twelfth year is usually referred to as the matriculation year. In most systems the seventh year indicated the end of primary schooling. * The questionnaire included the example, when asking for certificates, diplomas or degree, of ‘e.g. teacher’s diploma, BA degree or NTC III’). Diplomas and post-school * certificates are sometimes available to those without matric. Higher education thus does not necessarily imply completion of formal schooling. In the publications * post-school without matric is in the same category as post-school with matric". * It's not obvious to me what level of education to put 'artisan certificate': the above quote implies college; the name "certificate" usually implies a lower level than a diploma. *These are very different to India labels. My scale: 0=no school to 100=20years. freq EDUC, EDUCspou. recode EDUC, EDUCspou (1=0)(2=10)(3=30)(4=40)(5=55)(6=65)(7=75)(8=80)(9=90)(10=65)(11=72) (12=59)(13=-2). /* I tried putting illiterate (LANGr13=1) into EDUC=1: no difference. val label EDUC,EDUCspou 0 "no school/illiterate" 10 "school up to 4 years" 20 "over 4 years primary school" 30 "primary school completed" 40 "secondary school, incomplete" 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". *freq d10_m06. * There's one household with (apparently) 9 male children age 7-9; I think this must * be a typing mistake, so set it to missing. d10_tm is consistent with 9 kids, but I * assume this was calculated by Markinor adding up the numbers in each male age-group. if (d10_m06=9) d10_tm= -9. recode d10_tm ( -9=sysmis). recode d10_m06 ( 9 =sysmis). * Number of male & female in each age-band. rename vars (d10_m01=mAGE_0 ) (d10_m02=mAGE_1 ) (d10_m03=mAGE_2 ) (d10_m04=mAGE_3 ) (d10_m05=mAGE_4_6) (d10_m06=mAGE_7_9) (d10_m07=mAGE1012) (d10_m08=mAGE1314) (d10_m09=mAGE15 ) (d10_m10=mAGE1618) (d10_m11=mAGE1924) (d10_m12=mAGE2534) (d10_m13=mAGE35__) (d10_tm =n_male). rename vars (d10_f01=fAGE_0 ) (d10_f02=fAGE_1 ) (d10_f03=fAGE_2 ) (d10_f04=fAGE_3 ) (d10_f05=fAGE_4_6) (d10_f06=fAGE_7_9) (d10_f07=fAGE1012) (d10_f08=fAGE1314) (d10_f09=fAGE15 ) (d10_f10=fAGE1618) (d10_f11=fAGE1924) (d10_f12=fAGE2534) (d10_f13=fAGE35__) (d10_tf =n_female). * JOBS / SOCIAL CLASS. *string JOBiCLAS (a1). /* not in use. if (WORKST=3) JOB= 8. if (WORKST=4) JOB=15. if (WORKST=5) JOB= 0. if (WORKST=6) JOB= 2. if (WORKST=7) JOB= 1. if (OCCUP=1) JOB=75. if (OCCUP=2) JOB=95. if (OCCUP=3) JOB=35. if (OCCUP=4) JOB=29. if (OCCUP=5) JOB=24. if (OCCUP=6) JOB=21. if (OCCUP=7) JOB=65. if (OCCUP=8) JOB= -2. *recode OCCUP (-99.99= -9). /* I think OCCUP= -99.99 have no paid job (includes housewives, etc). if (OCCUP<7) JOB_ICSE=1. if (OCCUP=7) JOB_ICSE=3. if (OCCUP=8) JOB_ICSE=-2. var lab JOB "Respondent's job". var lab JOB_ICSE "Respondent's employment status". ** The next 6 lines are similar to other WAS surveys, but for RESPONDENT - other surveys are for all in hhold. *compute CLASS_wk =0. *if (job>15 & job<35) CLASS_wk =1. *compute CLASS_mi =0. *if (job>65) CLASS_mi =1. *compute CLASS_se =0. *if (job>45 & job<75) or (job>75 & job<92) CLASS_se =1. * ATTITUDES: . rename vars (q9_1=AT_canOK)(q9_2=AT_PREPA)(q9_3=AT_BUSY )(q9_4=AT_OBEY ) (q9_5=AT_ROLES)(q9_6=ATpROLES). recode AT_canOK,AT_PREPA,AT_BUSY,AT_OBEY,AT_ROLES,ATpROLES (6=-1)(7=-8)(-99.99=-5). * Change to order (1 = 'agree atrongly' to 5='disagree strongly') used in WAS India & Indonesia. recode AT_canOK,AT_PREPA,AT_BUSY,AT_OBEY,AT_ROLES,ATpROLES (1=5)(2=4)(3=3)(4=2)(5=1). val lab AT_canOK,AT_PREPA,AT_BUSY,AT_OBEY,AT_ROLES,ATpROLES 1'agree strongly' 2'agree' 3'neither agree/disagree' 4'disagree' 5'disagree strongly'. * RELIGION. rename var (q11 = religion). recode religion (1=19)(2=11)(3=18)(4=40)(5=30)(6=82)(7=81)(8=50)(9=90)(10=0)(11=-2)(-99.99=-9). val label religion 0'No religion/atheist' 10'Christian (unspecified)' 11'Protestant' 12'Presbyterian' 13'Evangelical/Wesleyan/Baptist' 14'Messianica' 15'Christa do reino de Deus' 16'7th Day Adventist' 18'Orthodox' 19'Roman Catholic' 20'Christian-related' 21'Rosicrucian' 22'Mormon' 23"Jehovah's Witness" 30'Muslim' 40'Jewish' 50'Hindu/Vaisnavist' 51'Sikh' 60'Buddhist' 61'Jain' 70'Parsi/Zoroastrian' 80'Animist (unspecified)' 81'Traditional African' 82'Independent African' 83'Candomble' 84'Umbanda' 89'Spiritualist' 90'Other (unspecified)' 91'Soicho-Noye (Brazil)' 92'Teluja (India)' 93'Koli (India)' 94'Nepali (India)'. freq religion. rename var (d10a= OWNchild). recode OWNchild (1=1)(2=0)(3= -1). * Already in for BM92; could work out equivalent for other WAS surveys, if worthwhile. * HOUSEHOLD (FINANCIAL) MANAGEMENT. rename var (q6=managMon)(q7=finalSay)(q8=AT_final). recode managMon (1=1.1)(2=1.2)(3=2)(4=3) (5=-9)(6=-1) (7=0)(8=998) (9, -99.99=-9). recode finalSay,at_final (1=1.1)(2=1.2)(3=2)(4=-9)(5= 0)(6=998)(7=-1) ( -99.99=-9). *value label p1_relat,p2_relat,p3_relat,p4_relat,p5_relat,p6_relat,p7_relat,p8_relat,p9_relat,p10relat, p11relat,p12relat,p13relat,p14relat,p15relat MANAGmon,FINALsay,AT_final. value label MANAGmon,FINALsay,AT_final 200"Grandparent" 210"Great-aunt/uncle" 201"Grandparent of spouse" 100"Parent" 110"Aunt/uncle" 101"Parent of spouse" 111"Aunt/uncle of spouse" 102"Parent's spouse (step-parent)" 000"Respondent" 010"Sibling" 030"Cousin" 001"Respondent's spouse" 011"Sibling's spouse" 021"Spouse's sibling" 012"Brother/sister-in-law" 022"Spouse's sibling's spouse" -100"Child" -103"adopted child" -110"Nephew/neice" -101"Child of spouse" -121"Nephew/neice of spouse" -102"Child's spouse" -200"Grandchild" -210"Great-nephew/neice" -201"Grandchild of spouse" -221"Spouse's sib's grandchild" 991"head-of-household" 992"main earner" -300"Great-grandchild" 993"all in household" 994"self+other(s), e.g. self+child" 995"non-relative, e.g. friend or lodger" 996"other(s): unspecified" 997"other in-law" 998"other relative(s)" 999"elders, e.g. parents" 1.1"husband", 1.2"wife" 2"husband+wife together" 3"husband+wife separately" 4"husband's 2nd wife" 5"other,not just husband & wife" 801"child's parents" 802"no children in hh" 803"maid/baby-sitter" -4"Not in ID 2002 (data entry error)". rename var (q10 = CONTROL). recode CONTROL (1=0)(2=15)(3=35) (4=65)(5=85)(6=100)(7=-2)(else=sysmis). value label CONTROL 0'No control' 1'Little control' 2'Some control' 3'Equal control' 4'A lot of control' 5'Most of the control' 6'Complete control' 1.5'Some control' 4.5'Most of the control'. /* This line is for '2002 IN'. 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. * -99 is missing data in SPSS; 99997 to 99999 labelled on fax. 9999 to 99996 aren't labelled, but I guess are missing. recode Q4_01 to Q4_12 (9999 thru 99996=sysmis)(99997= -2)(99998= -3)(99999= -1). missing value Q4_01 to Q4_12 (-9 thru -1). rename vars (Q4_01=SP_Fmeal) (Q4_02=SP_cerea ) (Q4_03=SP_VEGET) (Q4_04=SP_BREAD) (Q4_05=SP_DAIRY) (Q4_06=SP_INSTA) (Q4_07=SP_MeatF) (Q4_08=SP_DRINK) (Q4_09=SP_TOBAC) (Q4_10=SP_HOUSE) (Q4_11=SP_MAID) (Q4_12=SP_cCARE). compute SP_FOOD = SP_cerea +SP_veget +SP_bread+SP_dairy+SP_insta +SP_meatF. compute SP_TOTAL = SP_Fmeal+SP_FOOD+SP_drink+SP_tobac+SP_HOUSE+SP_maid+SP_cCare. missing value SP_FOOD SP_TOTAL (-9 thru -1). var label SP_FOOD 'HH spending (per month): ALL FOOD excluding restauraunts'. var label SP_TOTAL 'Total HH spending (per month)'. *breakd sp_fmeal sp_cerea sp_veget sp_bread sp_dairy sp_insta sp_meatF sp_drink sp_tobac sp_house sp_maid sp_cCare by comSiz. if (comSiz>1) sp_fmeal = -5. /* Spending questions not asked in rural sample. if (comSiz>1) sp_cerea = -5. if (comSiz>1) sp_veget = -5. if (comSiz>1) sp_bread = -5. if (comSiz>1) sp_dairy = -5. if (comSiz>1) sp_insta = -5. if (comSiz>1) sp_insta = -5. if (comSiz>1) sp_meatF = -5. if (comSiz>1) sp_drink = -5. if (comSiz>1) sp_tobac = -5. if (comSiz>1) sp_house = -5. if (comSiz>1) sp_maid = -5. if (comSiz>1) sp_cCare = -5. if (comSiz>1) SP_FOOD = -5. if (comSiz>1) SP_TOTAL = -5. * Could use this method for variables which were only asked in urban areas (i.e. most vars in WAS S. Africa). rename var (q5= skipMeal). recode skipMeal (4=0)(3=1)(2=2)(1=3)(5=-1)(6=-2)(7=-3)(-99.99=-5). val labels skipMeal 0'never' 1'only 1 or 2 months' 2'some months, but not every month' 3'almost every month'. rename var (d1= doesShop). recode doesShop (3=0)(2=1)(1=2). val labels doesShop 0'not at all' 1'partially' 2'mainly'. var label doesShop 'Is the respondent responsible for shopping?'. * Note: SA2000 are income, not earnings - ignore unearned income, & call it earnings. rename vars (q2h_inc = EARN_HoH)(inc_spou = EARN_spo). *if (resp_hoh=1 & sex=0) EARN_hus = EARN_HoH. /*Old version (not now used). *if (resp_hoh=1 & sex=0) EARN_wif = EARN_spo. *if (resp_hoh=0 & sex=0) EARN_hus = EARN_spo. *if (resp_hoh=0 & sex=0) EARN_wif = EARN_HoH. *if (resp_hoh=1 & sex=1) EARN_hus = EARN_spo. *if (resp_hoh=1 & sex=1) EARN_wif = EARN_HoH. *if (resp_hoh=0 & sex=1) EARN_hus = EARN_HoH. *if (resp_hoh=0 & sex=1) EARN_wif = EARN_spo. if (fem_head=0) EARN_hus = EARN_HoH. /* New version: 31/7/2004. if (fem_head=1) EARN_wif = EARN_HoH. if (fem_head=1 & fem_spou=0) EARN_hus = EARN_spo. if (fem_head=0 & fem_spou=1) EARN_wif = EARN_spo. var label EARN_hus "Earnings of husband after tax (per month)". var label EARN_wif "Earnings of wife after tax (per month)". desc EARN_wif,EARN_hus EARN_spo,EARN_HoH. rename vars (q3hh_1=PAID_HUS)(q3sp_1=PAID_WIF). * Identify non-employed: if missing data on hours & no earnings, assume not employed. if (EARN_hus<0.1 & PAID_hus<0) PAID_hus = 0. if (EARN_wif <0.1 & PAID_wif <0) PAID_wif = 0. * Some vars may be set to zero in rural areas, but should be missing; I can't see any problems. if (comSiz>1) PAID_hus = -9. if (comSiz>1) PAID_wif = -9. recode PAID_hus, PAID_wif (-9=sysmis). rename var (income= HHincome). recode HHincome( 1=21000)( 2=19000)( 3=17000)( 4=15000)( 5=13000)( 6=11000) ( 7= 9500)( 8= 8500)( 9= 7500)(10= 6500)(11= 5500)(12= 4500) (13= 3500)(14= 2750)(15= 1950)(16= 1300)(17= 1050)(18= 700)(19= 250)(21=-1) (20=-2) (else=sysmis). recode earning (98= -2). rename var (earning=N_earner). * TIME_USE. rename vars (q3hh_2=cookHUS)(q3sp_2=cookWIF)(q3hh_3=laundHUS)(q3sp_3=laundWIF) (q3hh_4=SHOP_HUS)(q3sp_4=SHOP_WIF)(q3hh_5=cleanHUS)(q3sp_5=cleanWIF)(q3hh_6=MIND_HUS)(q3sp_6=MIND_WIF). recode PAID_HUS,PAID_WIF,cookHUS,cookWIF,laundHUS,laundWIF,SHOP_HUS,SHOP_WIF, cleanHUS,cleanWIF,MIND_HUS,MIND_WIF (997= -2)(998= -3)(999= -1). /* Don't use "(sysmis=-5)": it interacts with earn_wif. * New on 17th July 2004: convert from minutes per day, to hours per week. if (cookHUS>-1) cook_HUS = cookHUS * 7 / 60. if (cookWIF>-1) cook_WIF = cookWIF * 7 / 60. *breakd cook_WIF by comsiz. var label cook_HUS 'hours spent cooking (per week): self/husband'. var label cook_WIF 'hours spent cooking (per week): self/wife'. *breakd mind_hus,mind_wif by sex. /*time-use data: mind_hus,mind_wif varnames correct (not mindResp,mindSpou). * Variables d905-d908 ask if phone is working. if (d901=1) PHONE = 1. if (d902=1) PHONE = 0. if (d903=1) PHONE = -1. if (d904=1) PHONE = -2. if (d906=1) PHONE = -4. /* not working. var lab PHONE 'Telephone in the household'. * crosstabs d11 by d603. /*d603 doesn't tell us more than variable d11. And d621 (own none on list) seems unhelpful. rename var (d604=hireMAID) (d605=dwLiquid) (d11 =CAR). rename var (d602=WATERtap) (d606=TOILET) (d607=WATERhot) (d608=MICROWVE) (d609=FRIDGE) (d610=VACUUM) (d612=WASHMACH) (d614=TV) (d615=Hi_Fi) (d616=INTERNET) (d617=COMPUTER) (d618=MOBILE). *According to a S.African student I met at SBU, M-NET is set-top box (called "set-top box" or "Freeview" in UK); * DsTV is satellite TV (called Sky in UK). rename var (d619 = TVbox)(d620=SATELITE). var label TVbox 'does the HH own a set-top box, to use digital TV on a normal TV set?'. * d601 means has electricity; d611 means electricity turned on. if (d601=0 or d611=0) ELECTRIC = 0. if (d601=1) ELECTRIC = 2. if (d611=1) ELECTRIC = 1. var label ELECTRIC 'Is the home connected to electricity?'. var label dwLiquid 'Has dishwashing liquid in the home'. recode WATERtap (0=0)(1=100). val label WATERtap 0'no' 1'yes'. rename var (typDWEL= homeType). recode homeType (0=10)(1=20)(2=25)(10=43)(4=45)(11=46)(3=55)(16=60) (5=61)(6=63)(12=80)(9=84)(8=85)(15=90)(14=97)(13=98)(7=99). 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" 55 "caravan or mobile home" 56 "single room" 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 house (2 or more bedrooms, inside bathroom)" 100 "OK house/apartment". rename var (d801=bankResp) (d802=saveResp)(d803=banTResp)(d804=shares)(d805=CredCard)(d806=garaCard)(d807=bankCard)(d808=has_Loan). var label bankResp 'Respondent has bank account'. var label saveResp 'Respondent has savings account'. var label banTResp 'Respondent has transmission (bank) account'. var label shares 'Respondent has shares'. var label credCard 'Respondent has a credit card'. var label garaCard 'Respondent has a petrol/garage card'. var label bankCard 'Respondent has ATM card (Automatic Teller Machine="cashpoint")'. var label has_loan 'Respondent has a loan'. if (d809=1) bankResp = 0. if (d809=1) saveResp = 0. if (d809=1) banTResp = 0. if (d809=1) shares = 0. if (d809=1) credCard = 0. if (d809=1) garaCard = 0. if (d809=1) bankCard = 0. if (d809=1) has_loan = 0. if (d810=1) bankResp = -2. if (d810=1) saveResp = -2. if (d810=1) banTResp = -2. if (d810=1) shares = -2. if (d810=1) credCard = -2. if (d810=1) garaCard = -2. if (d810=1) bankCard = -2. if (d810=1) has_loan = -2. *freq bankResp saveResp. /* Few people have 'cheque/current account' (bankResp); for consistency with other WAS surveys, call any account a bank account. if (saveResp=1) bankResp = 1. if (banTResp=1) bankResp = 1. if (bankCard=1) bankResp = 1. rename var (d613=onCredit). var label onCredit 'Has bought durable good(s) on credit in the last 12 months'. rename var (d701=life_INS)(d702=endowINS)(d703=annuiINS)(d704=funerINS)(d705=medicINS) (d706=shortINS)(d707=otherINS). var label life_INS 'Respondent has a whole life insurance policy'. var label endowINS 'Respondent has an endowment/savings insurance policy'. var label annuiINS 'Respondent has an annuity/personal pension policy'. var label funerINS 'Respondent has a funeral insurance policy'. var label medicINS 'Respondent has a medical insurance policy'. var label shortINS 'Respondent has a car/household insurance policy'. var label otherINS 'Respondent has another insurance policy'. val label bankResp,saveResp,banTResp,shares,CredCard,garaCard,bankCard,has_Loan, life_INS,endowINS,annuiINS,funerINS,medicINS,shortINS,otherINS,onCredit 0"no" 1"yes" -1"don't know" -2"refused". if (d708=1) life_INS = 0. if (d708=1) endowINS = 0. if (d708=1) annuiINS = 0. if (d708=1) funerINS = 0. if (d708=1) medicINS = 0. if (d708=1) shortINS = 0. if (d708=1) otherINS = 0. if (d709=1) life_INS =-2. if (d709=1) endowINS =-2. if (d709=1) annuiINS =-2. if (d709=1) funerINS =-2. if (d709=1) medicINS =-2. if (d709=1) shortINS =-2. if (d709=1) otherINS =-2. if (d710=1) life_INS =-1. if (d710=1) endowINS =-1. if (d710=1) annuiINS =-1. if (d710=1) funerINS =-1. if (d710=1) medicINS =-1. if (d710=1) shortINS =-1. if (d710=1) otherINS =-1. * From one-page photocopy given by Markinor; this sort of a social class measure. var lab LSM "Living Standards Measure (from S.Africa mkt researchers)". val lab LSM 1'Traditional have-not' 2'self-centred non-earner' 3'transitional rural' 4'urbanised single' 5'young aspirer' 6'emerging market' 7'established affluent' 8'progressive affluent'. rename var (comSiz=LIVEurbn).