TITLE 'WERS 98 DATA DISSEMINATION SERVICE' . SUBTITLE 'FSOCFIX.SPS' . COMMENT Purpose: Edits the pay determination vars in the 1998 Cross-Section Management data file (including derivation of new collective bargaining coverage variable to replace FCOVER) . COMMENT Input file: None specified . COMMENT Output file: n:\wers98\dataserv\fsocfix.sav . COMMENT Written by: John Forth . COMMENT Last updated: 31/01/01 . *********************************************** . COMMENT Syntax should be run once: The Management data file, Mq98fin.sav, has been opened Mq98fix.sps has been run to correct errors in that data file Recogfix.sps has been run to recode recognition in state schools . COMMENT Both syntax files can be incorporated into an existing batch file using the INCLUDE statement . *********************************************** . COMMENT Check the EPQ data . COMMENT Create a variable Diffpc that calculates the magnitude of any inconsistencies between the occupation totals given in Q3 and the total number of emps given at Q1 . COMMENT Diffpc is sysmis where EPQ data concerns organization or at least one occupation total is missing (22 of the 67 cases where an inconsistency is apparent) . COMMENT The 67 cases with an inconsistency mirror those flagged on the derived variable Nocc_flg . do if ((missing(xcode1)=0 and xcode1=1) or (missing(xcode3)=0 and xcode3=3))=0 . + do if (missing(zmng_tot)=0 and missing(zpro_tot)=0 and missing(ztec_tot)=0 and missing(zcle_tot)=0 and missing(zcrt_tot)=0 and missing(zptc_tot)=0 and missing(zsal_tot)=0 and missing(zope_tot)=0 and missing(zrou_tot)=0) . + compute diff=sum(zmng_tot,zpro_tot,ztec_tot,zcle_tot,zcrt_tot,zptc_tot,zsal_tot,zope_tot,zrou_tot,-zallemps) . + end if . end if . compute diffpc=(diff*100)/zallemps . execute . *freq vars=diffpc . *********************************************** . COMMENT Define 9 new variables to hold revised FSOC data Prefix with 'n' to show that they are derived variables . numeric nfsoc1 to nfsoc9 (f1.0) . recode fsoc1 to fsoc9 (else=copy) into nfsoc1 to nfsoc9 . variable labels nfsoc1 "Method of pay determination - edited" /nfsoc2 "Method of pay determination - edited" /nfsoc3 "Method of pay determination - edited" /nfsoc4 "Method of pay determination - edited" /nfsoc5 "Method of pay determination - edited" /nfsoc6 "Method of pay determination - edited" /nfsoc7 "Method of pay determination - edited" /nfsoc8 "Method of pay determination - edited" /nfsoc9 "Method of pay determination - edited" . value labels nfsoc1 to nfsoc9 1 "Collective bargaining, more than one employer" 2 "Collective bargaining, organization level" 3 "Collective bargaining, workplace level" 4 "Set by management at higher level" 5 "Set by management at workplace" 6 "Negotiation with individual employees" 7 "Some other way (e.g. pay review body)" 8 "None of these" 9 "Dont know" . missing values nfsoc1 to nfsoc9 (8,9) . execute . *freq vars=nfsoc1 to nfsoc9 . *********************************************** . COMMENT Define 2 new variables to hold the revised coverage data (to replace FCOVER) Prefix with 'n' to show that they are derived variables . COMMENT Ncovtot holds the number of employees covered by coll barg Ncovpc holds the percentage . numeric ncovtot (f6.0) . numeric ncovpc (f3.2) . compute ncovtot=0 . compute ncovpc=0 . *********************************************** . *********************************************** . COMMENT Tidy up the NFSOC data . *********************************************** . COMMENT If xcode1=1 or xcode3=3 (14 cases), all occ data has been wiped but NFSOC still present . COMMENT Not clear whether NFSOC data was recoded by primary research team in order to reflect occupations present in establishment (rather than occupations present in organization) . COMMENT So set NFSOC vars to missing in all cases . do if (xcode1=1 or xcode3=3) . + recode nfsoc1 to nfsoc9 (else=9) . end if . execute . *********************************************** . COMMENT More by cross-checking with EPQ data to align missing values Where occ tot is user-missing and NFSOC sysmis, recode NFSOC to 9 NFSOC then only system missing when occ tot = 0 . do if missing(zmng_tot) or (missing(zmng_tot)=0 and zmng_tot>0) . + recode nfsoc1 (sysmis=9) . end if. do if missing(zpro_tot) or (missing(zpro_tot)=0 and zpro_tot>0) . + recode nfsoc2 (sysmis=9) . end if. do if missing(ztec_tot) or (missing(ztec_tot)=0 and ztec_tot>0) . + recode nfsoc3 (sysmis=9) . end if. do if missing(zcle_tot) or (missing(zcle_tot)=0 and zcle_tot>0) . + recode nfsoc4 (sysmis=9) . end if. do if missing(zcrt_tot) or (missing(zcrt_tot)=0 and zcrt_tot>0) . + recode nfsoc5 (sysmis=9) . end if. do if missing(zptc_tot) or (missing(zptc_tot)=0 and zptc_tot>0) . + recode nfsoc6 (sysmis=9) . end if. do if missing(zsal_tot) or (missing(zsal_tot)=0 and zsal_tot>0) . + recode nfsoc7 (sysmis=9) . end if. do if missing(zope_tot) or (missing(zope_tot)=0 and zope_tot>0) . + recode nfsoc8 (sysmis=9) . end if. do if missing(zrou_tot) or (missing(zrou_tot)=0 and zrou_tot>0) . + recode nfsoc9 (sysmis=9) . end if. execute . *********************************************** . COMMENT Amend some NFSOC codes for single independent establishments, where codes given apply only to workplaces that are part of larger organizations - numerous cases of this . do if (asingle=2) . + recode nfsoc1 to nfsoc9 (2=3) (4=5) . end if . execute . *freq vars=nfsoc1 to nfsoc9 . *********************************************** . *********************************************** . COMMENT NFSOC codes need attention in some public sector establishments . COMMENT Specifically, PRB not properly acknowledged in all cases where it applies but also, code 7 sometimes given to inappropriate groups or, in some cases, given across the board to all groups . *********************************************** . COMMENT First, revise NFSOC for state schools in England and Wales, where schoolteachers' pay known to be set by pay review body . COMMENT Assume that all Professionals in such establishments are teachers, so recode NFSOC2 to 7 . COMMENT Assume that all other occ groups below Professionals contain non-teaching staff, whose pay is set by the local authority through national agreement - so if code 7 given, recode to 1 If another code given, leave it since may be a grant-maintained school (can take individual approach for non-teaching staff) . COMMENT Match on revised SIC data and region identifier to assist with idenfication of state schools . match files file=* /table="o:\wers98\mainq\deposit\restrict\mqsicfin.sav" /table="o:\wers98\mainq\deposit\restrict\region.sav" /by serno . execute . COMMENT Can now recode NFSOC2 recoded in 65 out of 131 cases (40 of these gave code 1) Other 66 cases already have code 7. do if (astatus=3 and any(asic_fin,80100,80210) and gor~=6) . + recode nfsoc2 (1 thru 6=7) . end if . execute . *freq vars=nfsoc1 to nfsoc9 . COMMENT Recode NFSOC3-NFSOC9 to 1 where code 7 given Some 41 cases out of 131 require some recoding . do if (astatus=3 and any(asic_fin,80100,80210) and gor~=6) . + recode nfsoc3 to nfsoc9 (7=1) . end if . execute . *freq vars=nfsoc1 to nfsoc9 . *********************************************** . COMMENT Next, revise NFSOC for nurses and professions allied to medicine in public sector hospitals . COMMENT Know that some trusts have local negotiations, so we only correct NFSOC where it equals 1 (multi-employer bargaining) We take this code to have been confused with Pay Review Body and so recode 1s to 7s for the three occupational groups that could include nurses or PAM (i.e. SOC2: Professionals, SOC3: Technicals and SOC6: Protective and Personal Service) . COMMENT We make a small number of exceptions: (a) cases where code 7 has been given for nurses (identified by ZSOCDESC), but code 1 given for other groups out of SOC2, SOC3 or SOC6 Here we assume that, since the respondent has got the arrangements right for one group, he/she has probably got them right for all, and that the other group probably doesn't contain any employees that are covered by the Pay Review Body (b) Administrative establishments that are coded under SIC92=75240 (e.g. NHS Trust headquarters), where staff are concerned with administration rather than health care . COMMENT 24 cases out of 71 recoded, further 8 out of the 71 are left untouched as exceptions . do if (astatus=3 and any(asic_fin,85110) and any(serno,11729,11785,13098,13135,13337,13775,13780,13952)=0) . + recode nfsoc2 nfsoc3 nfsoc6 (1=7) . end if . COMMENT Also recode NFSOC in cases where code 7 given for occs not covered by PRB - often code 7 given across the board for all occs Assume confused with national negotiations - recode to 1 17 out of 71 cases recoded . do if (astatus=3 and any(asic_fin,85110)) . + recode nfsoc4 nfsoc5 nfsoc7 nfsoc8 nfsoc9 (7=1) . end if . execute . *freq vars=nfsoc1 to nfsoc9 . *********************************************** . COMMENT Finally, correct NFSOC for police officers and police support staff . COMMENT In a number of cases, pay arrangement of some/all staff in police stations given as code 7 COMMENT However, pay of police officers and superintendents is agreed by the Police Negotiating Board (at present, they have agreed to follow the pay of non-manuals in the private sector) It is true that their agreement has to be ratified by the Home Secretary, but he rarely intervenes The settlement is therefore primarily a negotiated one, in contrast to the 'evidence gathering' process of the Pay Review Bodies So, recodes 7s to 1s for police officers . COMMENT Police Support Staff pay set by voluntary collective bargaining, although each local Police Authority can choose whether to be party to the agreement So again, pay is negotiated rather than arising from a Review Body arrangement Recode 7s to 1s for support staff . COMMENT 12 cases out of 31 need some recoding . do if (astatus=3 and any(asic_fin,75240)) . + recode nfsoc1 to nfsoc9 (7=1) . end if . execute . *freq vars=nfsoc1 to nfsoc9 . *********************************************** . *********************************************** . COMMENT Begin to derive coverage . *********************************************** . COMMENT If indiv occ totals from EPQ are missing, FSOC not asked or missing: set coverage to missing Else, in the two cases where all occ totals=0 and all NFSOCs missing, set coverage to missing Else, for each group, if method of pay det missing, set coverage to missing but if occ total>0 and covered by coll bg, add to coverage figure . COMMENT Gives 1176 cases with no coverage; 949; 66 coded to 999999 . do if (missing(zmng_tot) or missing(zpro_tot) or missing(ztec_tot) or missing(zcle_tot) or missing(zcrt_tot) or missing(zptc_tot) or missing(zsal_tot) or missing(zope_tot) or missing(zrou_tot)) . + compute ncovtot=999999. else if missing(zmng_tot)=0 and missing(zpro_tot)=0 and missing(ztec_tot)=0 and missing(zcle_tot)=0 and missing(zcrt_tot)=0 and missing(zptc_tot)=0 and missing(zsal_tot)=0 and missing(zope_tot)=0 and missing(zrou_tot)=0 and sum.9(zmng_tot,zpro_tot,ztec_tot,zcle_tot,zcrt_tot,zptc_tot,zsal_tot,zope_tot,zrou_tot)=0 . + compute ncovtot=999999. else . + do if (zmng_tot>0 and ncovtot~=999999) . + if missing(nfsoc1) ncovtot=999999 . + if (missing(nfsoc1)=0 and nfsoc1<=3) ncovtot=zmng_tot . + end if . + do if (zpro_tot>0 and ncovtot~=999999) . + if missing(nfsoc2) ncovtot=999999 . + if (missing(nfsoc2)=0 and nfsoc2<=3) ncovtot=sum(ncovtot,zpro_tot) . + end if . + do if (ztec_tot>0 and ncovtot~=999999) . + if missing(nfsoc3) ncovtot=999999 . + if (missing(nfsoc3)=0 and nfsoc3<=3) ncovtot=sum(ncovtot,ztec_tot) . + end if . + do if (zcle_tot>0 and ncovtot~=999999) . + if missing(nfsoc4) ncovtot=999999 . + if (missing(nfsoc4)=0 and nfsoc4<=3) ncovtot=sum(ncovtot,zcle_tot) . + end if . + do if (zcrt_tot>0 and ncovtot~=999999) . + if missing(nfsoc5) ncovtot=999999 . + if (missing(nfsoc5)=0 and nfsoc5<=3) ncovtot=sum(ncovtot,zcrt_tot) . + end if . + do if (zptc_tot>0 and ncovtot~=999999) . + if missing(nfsoc6) ncovtot=999999 . + if (missing(nfsoc6)=0 and nfsoc6<=3) ncovtot=sum(ncovtot,zptc_tot) . + end if . + do if (zsal_tot>0 and ncovtot~=999999) . + if missing(nfsoc7) ncovtot=999999 . + if (missing(nfsoc7)=0 and nfsoc7<=3) ncovtot=sum(ncovtot,zsal_tot) . + end if . + do if (zope_tot>0 and ncovtot~=999999) . + if missing(nfsoc8) ncovtot=999999 . + if (missing(nfsoc8)=0 and nfsoc8<=3) ncovtot=sum(ncovtot,zope_tot) . + end if . + do if (zrou_tot>0 and ncovtot~=999999) . + if missing(nfsoc9) ncovtot=999999 . + if (missing(nfsoc9)=0 and nfsoc9<=3) ncovtot=sum(ncovtot,zrou_tot) . + end if . end if . execute . *freq vars=ncovtot . *********************************************** . COMMENT Check cases in which DIFFPC suggests that the occupational data is not very consistent with ZALLEMPS . COMMENT There are 4 cases where coverage is > 0 and ~=999999, but where occ totals don't add up to ZALLEMPS and are out by >=5% Set coverage to missing in these cases . do if (ncovtot>0 and ncovtot~=999999 and (diffpc<=-5 or diffpc>=5)) . + compute ncovtot=999999 . end if . execute . COMMENT There are 2 cases where NCOVTOT > ZALLEMPS Note that previous recode ensures that -5% < DIFFPC < 5% in both these cases Set NCOVTOT to ZALLEMPS . do if (ncovtot~=999999 and ncovtot>zallemps) . + compute ncovtot=zallemps . end if . execute . COMMENT There are 5 cases where all NFSOC codes indicate collective bargaining, but coverage is slightly less than ZALLEMPS because DIFFPC is non-zero Note that previous recode ensures that -5% < DIFFPC < 5% in these cases . do if (ncovtot~=999999 and max(nfsoc1 to nfsoc9)<=3 and ncovtot~=zallemps) . + compute ncovtot=zallemps . end if . execute . COMMENT All of the cases without coll barg on NFSOC are catered for by earlier syntax, so no need to perform the converse check. *********************************************** . COMMENT Set missing values and labels on ncovtot . variable labels ncovtot "Number of employees covered by collective bargaining" . value labels ncovtot 999999 "Missing data" . missing values ncovtot (999999) . execute . *********************************************** . *********************************************** . COMMENT Check coverage data against other data on pay determination such as recognition (from Section E) and 's last pay settlement (from Section F) . *********************************************** . COMMENT Derive a simple variable indicating the presence of recognised unions . recode etotrec (1 thru hi=1) (0=2) (sysmis=3) into nrecog . do if (nrecog=3) . + recode eanyemp (1=2) into nrecog . end if . variable labels nrecog 'Are any unions recognised for collective bargaining purposes?' . value labels nrecog 1 'Union recognised' 2 'Members no recognition' 3 'No union members' . *********************************************** . COMMENT There are 312 cases where wp has recognised unions but coverage calculated as zero Some 22 of these are public sector w/ps of the type addressed above (schools, hospitals, police stations) - we will ignore these since don't want to inadvertently override existing recodes COMMENT Among remaining 290, look at detailed qns about last pay settlement for Largest Occupational Group There are three groups on the resulting var 'LOGPAY' Grp 1: negotiations with union reps: LOG is therefore covered (and will assume that all other SOCs with same method of pay det are also covered) Conclusion: coverage data suspect; resp probably confused by question wording at FSOC Grp 2: no negotiations with union reps: LOG not covered (assume that other SOCs are also not covered) Conclusion: coverage data probably OK Grp 9: DK if negotiations with union reps: DK if LOG (or other groups) actually covered; set coverage to missing Note that many of these cases cite involvement of FT union reps at FWHODID, but FCONSNEG missing so get 9 on logpay Can't infer that there is coll barg though because many of the cases where pay=2 also cite involvement of FT union reps but still say 'consultation' on FCONSNEG . recode fwhodid1 to fwhodid6 (sysmis=100) . missing values fwhodid1 to fwhodid6 (98,99) . do if (missing(ncovtot)=0 and ncovtot=0 and nrecog=1) and (astatus=3 and (any(asic_fin,75240) or any(asic_fin,85110) or (any(asic_fin,80100,80210) and gor~=6)))=0 . + do if (missing(fpaychge) or (missing(fpaychge)=0 and fpaychge<=0) or (missing(fpaychge)=0 and fpaychge>0 and missing(fupdown))) . + compute logpay=9 . + else if ((fpaychge=0 or fupdown=2) and fpaycut=1) . + compute logpay=1 . + else if ((fpaychge=0 or fupdown=2) and fpaycut=2) . + compute logpay=2 . + else if (fupdown=1 and missing(fwhodid1)) . + compute logpay=9 . + else if (fupdown=1 and (any(fwhodid1,5,7) or any(fwhodid2,5,7) or any(fwhodid3,5,7) or any(fwhodid4,5,7) or any(fwhodid5,5,7) or any(fwhodid6,5,7))) . + recode fconsneg (1=2) (2=1) (8,9,sysmis=9) into logpay . + else if (fupdown=1 and (any(fwhodid1,5,7) or any(fwhodid2,5,7) or any(fwhodid3,5,7) or any(fwhodid4,5,7) or any(fwhodid5,5,7) or any(fwhodid6,5,7))=0) . + compute logpay=2 . + end if . end if . freq vars=logpay . COMMENT If recog but no coll barg for (pay=2: 162 cases), have to assume info given at FSOC is correct and the explanation is that the bargaining unit referred to in recognition questions is not currently operating . COMMENT Leave them . COMMENT If logpay=9 (34 cases), set coverage to missing . do if (logpay=9) . + recode ncovtot (0=999999) . end if . execute . COMMENT If logpay=1 (94 cases), must amend coverage data Find what arrangement used by LOG and then sum emps over same code on FSOC . ** First identify LOG (excluding managers) . recode xcode1 xcode3 xcode5 (sysmis=100) . compute logtot=0 . recode zmng_tot zpro_tot ztec_tot zcle_tot zcrt_tot zptc_tot zsal_tot zope_tot zrou_tot (else=copy) into occ1 to occ9 . vector occ=occ2 to occ9 . do if (xcode1=1 or xcode3=3 or xcode5=5)=0 . + do if (missing(zpro_tot)=0 and missing(ztec_tot)=0 and missing(zcle_tot)=0 and missing(zcrt_tot)=0 and missing(zptc_tot)=0 and missing(zsal_tot)=0 and missing(zope_tot)=0 and missing(zrou_tot)=0) . + loop #i=1 to 8 . + do if occ(#i)>logtot . + compute log=#i+1 . + compute logtot=occ(#i) . + end if . + end loop . + end if . end if . execute . ** Then identify the pay setting arrangements reported for LOG . vector nfsoc=nfsoc1 to nfsoc9 . do if (logpay=1 and missing(log)=0) . + compute logfsoc=nfsoc(log) . end if . execute . *freq vars=logfsoc . ** Amend ncovtot to sum all grps with that method of pay setting (Note: no mvs on occ totals to worry about; nfsoc sysmis if occ total zero; no user missings on nfsoc) . ** Two special cases (sernos 11143 and 13136) are dealt with manually, since not caught by other clauses . vector nfsoc=nfsoc1 to nfsoc9 . vector occ=occ1 to occ9 . do if (logpay=1) . + loop #i=1 to 9 . + do if (nfsoc(#i)=logfsoc) . + compute ncovtot=ncovtot+occ(#i) . + do if ((asingle=1 or asingle=3) and fupdown=1 and missing(fwhere)=0 and fwhere=1) . + compute nfsoc(#i)=3 . + else if ((asingle=1 or asingle=3) and fupdown=1 and missing(fwhere)=0 and fwhere=2) . + compute nfsoc(#i)=2 . + else if ((asingle=1 or asingle=3) and fupdown=1 and missing(fwhere)=0 and any(fwhere,4,5)) . + compute nfsoc(#i)=1 . + else if (asingle=2 and fupdown=1 and any(1,fwhodid1 to fwhodid6)) . + compute nfsoc(#i)=3 . + else if (asingle=2 and fupdown=1 and any(1,fwhodid1 to fwhodid6)=0) . + compute nfsoc(#i)=1 . + else if serno=11143 . + compute nfsoc(#i)=1 . + else if serno=13162 . + compute nfsoc(#i)=3 . + end if . + end if . + end loop . end if . execute . *********************************************** . COMMENT There are 8 cases where no coverage and no recog unions but negotiation mentioned for LOG (ncovtot=0 and nrecog>1 and fconsneg=2) Could be that recog data is wrong, but don't want to alter recog data unless essential COMMENT Leave these . COMMENT There are 90 cases where coverage said to be >0 but there is no recognition (12 where actually report negs with union for LOG at last review) 23 of these cases are public sector workplaces of the type that we looked at at the start of the syntax file Possible for first time in 1998 - previously routing meant that coll bargained pay was not an option if unions were not present at the establishment . COMMENT No amendments made for Ncovtot . *********************************************** . *********************************************** . COMMENT Convert NCOVTOT to an integer percentage NCOVPC . do if missing(ncovtot) . + compute ncovpc=999 . else . + compute ncovpc=(ncovtot*100)/zallemps . end if . do if (ncovpc>0 and ncovpc<1) . + compute ncovpc=1 . else if (ncovpc>99 and ncovpc<100 and ncovpc~=999) . + compute ncovpc=99 . else . + compute ncovpc=rnd(ncovpc) . end if . execute . format ncovpc (f3.0) . *********************************************** . COMMENT Band variable into 6 and 7 bands . numeric ncovpc6 ncovpc7 (f1.0) . recode ncovpc (0=7) (0 thru 19=6) (20 thru 39=5) (40 thru 59=4) (60 thru 79=3) (80 thru 99=2) (100=1) (999=9) into ncovpc7 . recode ncovpc (0=6) (0 thru 19=5) (20 thru 49=4) (50 thru 79=3) (80 thru 99=2) (100=1) (999=9) into ncovpc6 . missing values ncovpc (999) /ncovpc6 ncovpc7 (9) . variable labels ncovpc "Percentage of emps covered by collective bargaining" ncovpc7 "Percentage of emps covered by collective bargaining" ncovpc6 "Percentage of emps covered by collective bargaining" . value labels ncovpc7 1 "100%" 2 "80-99%" 3 "60-79%" 4 "40-59%" 5 "20-39%" 6 "1-19%" 7 "None" 9 "DK/NA" /ncovpc6 1 "100%" 2 "80-99%" 3 "50-79%" 4 "20-49%" 5 "1-19%" 6 "None" 9 "DK/NA" . execute . *********************************************** . COMMENT Create NCOVPC3 . COMMENT This bands NCOVPC but also rescues 11 cases that are missing because of mvs on FSOC but where the non-missing data is sufficient to know that there is at least 50% coverage. numeric ncovpc3 (f1.0) . recode ncovpc6 (1,2,3=1) (4,5=2) (6=3) (9=9) into ncovpc3 . execute . compute tmpsum1=0 . vector nfsoc=nfsoc1 to nfsoc9 . vector occ=occ1 to occ9 . do if (ncovpc3=9) and diffpc=0 and missing(logpay) . + loop #i=1 to 9 . + do if (missing(nfsoc(#i))=0 and nfsoc(#i)<=3 and missing(occ(#i))=0 and occ(#i)<999997) . + compute tmpsum1=tmpsum1+occ(#i) . + end if . + end loop. + do if (tmpsum1>0 and (tmpsum1/zallemps)>=0.5) . + recode ncovpc3 (9=1) . + end if . end if . execute . missing values ncovpc3 (9) . variable labels ncovpc3 "Percentage of emps covered by collective bargaining" . value labels ncovpc3 1 "100-50%" 2 "1-49%" 3 "None" 9 "DK/NA" . *********************************************** . COMMENT Create NANYCOV COMMENT This creates a dichotomous var from NCOVPC3 but also rescues 12 cases that are missing because of mvs on FSOC but where the non-missing data is sufficient to know that there is at least some coverage . numeric nanycov (f1.0) . recode ncovpc3 (1,2=1) (3=2) (9=9) into nanycov . execute . vector nfsoc=nfsoc1 to nfsoc9 . vector occ=occ1 to occ9 . do if (nanycov=9) and missing(logpay) and (xcode1=1 or xcode3=3)=0 . + loop #i=1 to 9 . + do if (missing(nfsoc(#i))=0 and nfsoc(#i)<=3) . + recode nanycov (9=1) . + end if . + end loop. end if . execute . missing values nanycov (9) . variable labels nanycov "Any employees covered by collective bargaining?" . value labels nanycov 1 "Yes" 2 "No" 9 "DK/NA" . execute . *********************************************** . *********************************************** . COMMENT Save file (including amended source data for FSOC1 to FSOC9) . SORT CASES BY serno . EXECUTE . * User to change path on SAVE command . * SAVE OUTFILE = "n:\wers98\dataserv\fsocfix.sav" /KEEP =serno ncovtot ncovpc ncovpc7 ncovpc6 ncovpc3 nanycov nfsoc1 to nfsoc9 . EXECUTE.