*------------------------------------------------------------------------------------------------------------------------------. * EU-Labour Force Survey - Data Service - German Microdata Lab * * This routine converts EU-LFS 2009 QUARTERLY data formatted in CSV into SAV. * Checked for the December 2011 release of the EU-LFS, as provided by Eurostat. * * The whole routine consists of two files: * Setup_EULFS_2009_q.sps * Labels_EULFS_1998-2010.sps * * Version 1 of the routine, May 2012 * IBM SPSS Statistics 18.0 * (c) GESIS - Leibniz Institute for the Social Sciences * German Microdata Lab * Andrea Lengerer, Jan Richter, Christopher Stolz * http://www.gesis.org/en/institute/ * Contact: gml@gesis.org * * This SPSS code is protected under the creative commons licence. * *------------------------------------------------------------------------------------------------------------------------------. * CONFIGURATION. * Line 54: Change CSV_DATA_PATH to the path where the csv files are stored (e.g. E:\data\EU-LFS\csv\). * Line 343: Change LABEL_SYNTAX_PATH to the path where the file "Labels_EULFS_1998-2010.sps" is stored (e.g. E:\data\EU-LFS\syntax\). * Line 348: Change SPSS_DATA_PATH to the path where you want the sav files to be stored (e.g. E:\data\EU-LFS\sav\). * Line 362: Change FILENAMES to a list of files you want to convert from csv to sav (without file extension, e.g. de2009q1 se2009q2). *--------------------------------------------- Start Definition Macro ---------------------------------------------. DEFINE !readmac (datfile=!CHAREND('%')). !DO !i !IN (!datfile). *--- Read Raw Data ---. GET DATA / TYPE=TXT / FILE=!QUOTE(!CONCAT('CSV_DATA_PATH',!i,'.csv')) / DELCASE=LINE / DELIMITERS="," / ARRANGEMENT=DELIMITED / FIRSTCASE=2 / IMPORTCASE=ALL / VARIABLES= QHHNUM A9 COEFF COMMA9.7 QUARTER_ A2 HHNUM A9 REC F8.0 HHSEQNUM F2.0 REFYEAR F4.0 REFWEEK F2.0 INTWEEK F2.0 COUNTRY_ A2 REGION A2 DEGURBA F1.0 HHINST F1.0 INTWAVE F1.0 INTQUEST F1.0 REM F8.0 YEAR F4.0 HHPRIV F1.0 SEX F1.0 AGE F8.0 NATIONAL_ A3 YEARESID_ A5 COUNTRYB_ A3 PROXY F1.0 WSTATOR F1.0 NOWKREAS F2.0 STAPRO F1.0 SIGNISAL F1.0 COUNTRYW_ A2 REGIONW A2 YSTARTWK F4.0 MSTARTWK F2.0 FTPT F1.0 TEMP F1.0 TEMPDUR F1.0 HWUSUAL F8.0 HWACTUAL F8.0 HWOVERP F8.0 HWOVERPU F8.0 HOURREAS F2.0 WISHMORE F1.0 HWWISH F8.0 LOOKOJ F1.0 EXIST2J F1.0 STAPRO2J F1.0 HWACTUA2 F8.0 EXISTPR F1.0 YEARPR F4.0 MONTHPR F2.0 STAPROPR F1.0 ISCOPR3D F3.0 SEEKWORK F2.0 SEEKTYPE F1.0 SEEKDUR F1.0 METHODA F1.0 METHODB F1.0 METHODC F1.0 METHODD F1.0 METHODE F1.0 METHODF F1.0 METHODG F1.0 METHODH F1.0 METHODI F1.0 METHODJ F1.0 METHODK F1.0 METHODL F1.0 METHODM F1.0 WANTWORK F1.0 AVAILBLE F1.0 EDUCSTAT F1.0 EDUCLEVL F1.0 COURATT F1.0 COURLEN F3.0 HATLEVEL F2.0 ILOSTAT F1.0 NA111D_ A1 NA11S F1.0 ISCO1D F1.0 NA112J1D_ A1 NA112JS F1.0 NA11PR1D_ A1 NA11PRS F1.0 ISCOPR1D F1.0 DURUNE F1.0 EDUC4WN F1.0 HATLEV1D_ A1 ISCO3D F3.0 STARTIME F8.0 LEAVTIME F8.0 LEAVCLAS F1.0 NACE1D_ A1 NACE2J1D_ A1 NACEPR1D_ A1 AGERESID F2.0. EXECUTE. *--- Add Release-Variable ---. STRING RELEASE (A8). RECODE RELEASE (ELSE='DEC 2011'). *--- Recode Alphanumeric Variables ---. * Variables which remain alphanumeric: HHNUM and QHHNUM (too many values); REGION and REGIONW (values have country-specific meaning). RECODE QUARTER_ ('Q1'=1) ('Q2'=2) ('Q3'=3) ('Q4'=4) INTO QUARTER. RECODE COUNTRY_ ('AT'=1) ('BE'=2) ('BG'=3) ('CH'=4) ('CY'=5) ('CZ'=6) ('DE'=7) ('DK'=8) ('EE'=9) ('ES'=10) ('FI'=11) ('FR'=12) ('GR'=13) ('HU'=14) ('IE'=15) ('IS'=16) ('IT'=17) ('LT'=18) ('LU'=19) ('LV'=20) ('MT'=21) ('NL'=22) ('NO'=23) ('PL'=24) ('PT'=25) ('RO'=26) ('SE'=27) ('SI'=28) ('SK'=29) ('UK'=30) INTO COUNTRY. RECODE COUNTRYB_ ('000'=0) ('001'=1) ('002'=2) ('003'=3) ('004'=4) ('005'=5) ('006'=6) ('007'=7) ('008'=8) ('009'=9) ('010'=10) ('011'=11) ('012'=12) ('013'=13) ('014'=14) ('015'=15) ('016'=16) ('017'=17) ('018'=18) ('019'=19) ('020'=20) ('021'=21) ('NO'=-1) INTO COUNTRYB. RECODE NATIONAL_ ('000'=0) ('001'=1) ('002'=2) ('003'=3) ('004'=4) ('005'=5) ('006'=6) ('007'=7) ('008'=8) ('009'=9) ('010'=10) ('011'=11) ('012'=12) ('013'=13) ('014'=14) ('015'=15) ('016'=16) ('017'=17) ('018'=18) ('019'=19) ('020'=20) ('021'=21) ('NO'=-1) INTO NATIONAL. RECODE NA111D_ NA112J1D_ NA11PR1D_ ('A'=1) ('B'=2) ('C'=3) ('D'=4) ('E'=5) ('F'=6) ('G'=7) ('H'=8) ('I'=9) ('J'=10) ('K'=11) ('L'=12) ('M'=13) ('N'=14) ('O'=15) ('P'=16) ('Q'=17) (' '=-3) ('9'=-2) INTO NA111D NA112J1D NA11PR1D. RECODE HATLEV1D_ ('L'=1) ('M'=2) ('H'=3) ('9'=-2) ('8'=8) (' '=-1) INTO HATLEV1D. RECODE NACE1D_ NACE2J1D_ NACEPR1D_ ('A'=1) ('B'=2) ('C'=3) ('D'=4) ('E'=5) ('F'=6) ('G'=7) ('H'=8) ('I'=9) ('J'=10) ('K'=11) ('L'=12) ('M'=13) ('N'=14) ('O'=15) ('P'=16) ('Q'=17) ('R'=18) ('S'=19) ('T'=20) ('U'=21) (' '=-1) ('9'=-2) INTO NACE1D NACE2J1D NACEPR1D. RECODE COUNTRYW_ ('01'=0100) ('02'=0200) ('03'=0300) ('04'=0400) ('05'=0500) ('06'=0600) ('07'=0700) ('08'=0800) ('09'=0900) ('10'=1000) ('11'=1100) ('12'=1200) ('13'=1300) ('14'=1400) (' '=-1) ('99'=-2) ('AD'=0401) ('AE'=1101) ('AF'=1201) ('AG'=0801) ('AI'=0802) ('AL'=0402) ('AM'=1102) ('AN'=0803) ('AO'=0601) ('AQ'=1301) ('AR'=0901) ('AS'=1302) ('AT'=0101) ('AU'=1303) ('AW'=0804) ('AX'=0403) ('AZ'=1103) ('BA'=0404) ('BB'=0805) ('BD'=1202) ('BE'=0102) ('BF'=0602) ('BG'=0103) ('BH'=1104) ('BI'=0603) ('BJ'=0604) ('BL'=0806) ('BM'=0701) ('BN'=1203) ('BO'=0902) ('BR'=0903) ('BS'=0807) ('BT'=1204) ('BV'=1304) ('BW'=0605) ('BY'=0405) ('BZ'=0808) ('CA'=0702) ('CC'=1205) ('CD'=0606) ('CF'=0607) ('CG'=0608) ('CH'=0301) ('CI'=0609) ('CK'=1305) ('CL'=0904) ('CM'=0610) ('CN'=1001) ('CO'=0905) ('CR'=0809) ('CU'=0810) ('CV'=0611) ('CX'=1206) ('CY'=0104) ('CZ'=0105) ('DE'=0106) ('DJ'=0612) ('DK'=0107) ('DM'=0811) ('DO'=0812) ('DZ'=0501) ('EC'=0906) ('EE'=0108) ('EG'=0502) ('EH'=0613) ('ER'=0614) ('ES'=0109) ('ET'=0615) ('FI'=0110) ('FJ'=1306) ('FK'=0907) ('FM'=1307) ('FO'=0406) ('FR'=0111) ('GA'=0616) ('GD'=0813) ('GE'=1105) ('GF'=0908) ('GG'=0407) ('GH'=0617) ('GI'=0408) ('GL'=0703) ('GM'=0618) ('GN'=0619) ('GP'=0814) ('GQ'=0620) ('GR'=0112) ('GS'=0909) ('GT'=0815) ('GU'=1308) ('GW'=0621) ('GY'=0910) ('HK'=1002) ('HM'=1309) ('HN'=0816) ('HR'=0201) ('HT'=0817) ('HU'=0113) ('ID'=1207) ('IE'=0114) ('IL'=1106) ('IM'=0409) ('IN'=1208) ('IO'=1310) ('IQ'=1107) ('IR'=1108) ('IS'=0302) ('IT'=0115) ('JE'=0410) ('JM'=0818) ('JO'=1109) ('JP'=1003) ('KE'=0622) ('KG'=1110) ('KH'=1209) ('KI'=1311) ('KM'=0623) ('KN'=0819) ('KP'=1004) ('KR'=1005) ('KW'=1111) ('KY'=0820) ('KZ'=1112) ('LA'=1212) ('LB'=1113) ('LC'=0821) ('LI'=0303) ('LK'=1213) ('LR'=0624) ('LS'=0625) ('LT'=0117) ('LU'=0118) ('LV'=0116) ('LY'=0503) ('MA'=0504) ('MC'=0411) ('MD'=0412) ('ME'=0413) ('MF'=0822) ('MG'=0626) ('MH'=1312) ('MK'=0202) ('ML'=0627) ('MM'=1214) ('MN'=1006) ('MO'=1007) ('MP'=1313) ('MQ'=0823) ('MR'=0628) ('MS'=0824) ('MT'=0119) ('MU'=0629) ('MV'=1216) ('MW'=0630) ('MX'=0825) ('MY'=1217) ('MZ'=0631) ('NA'=0632) ('NC'=1314) ('NE'=0633) ('NF'=1315) ('NG'=0634) ('NI'=0826) ('NL'=0120) ('NN'=0499) ('NO'=0304) ('NP'=1218) ('NR'=1316) ('NU'=1317) ('NZ'=1318) ('OM'=1114) ('PA'=0827) ('PE'=0911) ('PF'=1319) ('PG'=1320) ('PH'=1219) ('PK'=1220) ('PL'=0121) ('PM'=0704) ('PN'=1321) ('PR'=0828) ('PS'=1115) ('PT'=0122) ('PW'=1322) ('PY'=0912) ('QA'=1116) ('RE'=0635) ('RO'=0123) ('RS'=0420) ('RU'=0414) ('RW'=0636) ('SA'=1117) ('SB'=1323) ('SC'=0637) ('SD'=0638) ('SE'=0124) ('SG'=1221) ('SH'=0639) ('SI'=0125) ('SJ'=0415) ('SK'=0126) ('SL'=0640) ('SM'=0416) ('SN'=0641) ('SO'=0642) ('SR'=0913) ('ST'=0643) ('SV'=0829) ('SY'=1118) ('SZ'=0644) ('TD'=0645) ('TC'=0830) ('TF'=0914) ('TG'=0646) ('TH'=1222) ('TJ'=1119) ('TK'=1324) ('TL'=1223) ('TO'=1325) ('TM'=1120) ('TN'=0505) ('TR'=0203) ('TT'=0831) ('TV'=1326) ('TW'=1008) ('TZ'=0647) ('UA'=0417) ('UG'=0648) ('UK'=0127) ('UM'=1327) ('US'=0705) ('UY'=0915) ('UZ'=1121) ('VA'=0418) ('VC'=0832) ('VE'=0916) ('VG'=0833) ('VN'=1224) ('VU'=1328) ('WF'=1329) ('WS'=1330) ('XK'=0419) ('XM'=0413) ('XS'=0420) ('YE'=1122) ('YT'=0649) ('ZA'=0650) ('ZM'=0651) ('ZW'=0652) INTO COUNTRYW. RECODE YEARESID_ (' '=-1) ('00'=0) ('01'=1) ('02'=2) ('03'=3) ('04'=4) ('05'=5) ('06'=6) ('07'=7) ('08'=8) ('09'=9) ('10'=10) ('01-04'=2) ('05-10'=6) ('11-14'=12) ('15-19'=17) ('20-24'=22) ('25-29'=27) ('30-34'=32) ('35-39'=37) ('40-44'=42) ('45-49'=47) ('50-54'=52) ('55-59'=57) ('60-64'=62) ('65-69'=67) ('70-74'=72) ('75-79'=77) ('80-84'=82) ('85-89'=87) ('90-94'=92) ('95-99'=97) ('50-99'=52) INTO YEARESID. * Variable COUNTRYW is coded differently for Malta and Slovenia than in other countries. DO IF COUNTRY=21. RECODE COUNTRYW_ ('00'=0119) ('NO'=-2) INTO COUNTRYW. END IF. DO IF COUNTRY=28. RECODE COUNTRYW_ ('00'=0125) ('NO'=-2) INTO COUNTRYW. END IF. FORMATS HATLEV1D (F1.0). FORMATS COUNTRY COUNTRYB NATIONAL NA111D NA112J1D NA11PR1D NACE1D NACE2J1D NACEPR1D YEARESID (F2.0). FORMATS COUNTRYW (F4.0). *--- Recode Missing Values ---. RECODE AGERESID (SYSMIS=-1). RECODE DEGURBA INTWAVE NA11S NA112JS NA11PRS (SYSMIS=-3). RECODE LEAVCLAS (SYSMIS=-9). RECODE STARTIME LEAVTIME (SYSMIS=-101) (999=-102). RECODE WSTATOR SIGNISAL SEEKWORK METHODA METHODB METHODC METHODD METHODE METHODF METHODG METHODH METHODI METHODJ METHODK METHODL METHODM ILOSTAT (9=-2). RECODE NOWKREAS (99=-2). RECODE HHINST PROXY STAPRO FTPT TEMP TEMPDUR WISHMORE LOOKOJ EXIST2J STAPRO2J EXISTPR STAPROPR SEEKTYPE SEEKDUR WANTWORK AVAILBLE EDUCSTAT EDUCLEVL COURATT DURUNE EDUC4WN (SYSMIS=-1) (9=-2). RECODE MSTARTWK HWUSUAL HWACTUAL HWOVERP HWOVERPU HOURREAS HWWISH HWACTUA2 MONTHPR HATLEVEL COUNTRYW (SYSMIS=-1) (99=-2). RECODE ISCOPR3D COURLEN ISCO1D ISCOPR1D ISCO3D (SYSMIS=-1) (999=-2). RECODE YSTARTWK YEARPR (SYSMIS=-1) (9999=-2). RECODE REGIONW (' '='-1') ('99'='-2'). EXECUTE. *--- Recode Variables in Countries which did not deliver any Information for this Variable ---. DO REPEAT var=REC HHSEQNUM REFYEAR REFWEEK INTWEEK DEGURBA HHINST INTWAVE INTQUEST REM HHPRIV SEX AGE NATIONAL YEARESID COUNTRYB PROXY WSTATOR NOWKREAS STAPRO COUNTRYW YSTARTWK MSTARTWK FTPT TEMP TEMPDUR HWUSUAL HWACTUAL HWOVERP HWOVERPU HOURREAS WISHMORE HWWISH LOOKOJ EXIST2J STAPRO2J HWACTUA2 EXISTPR YEARPR MONTHPR STAPROPR ISCOPR3D SEEKWORK SEEKTYPE SEEKDUR METHODA METHODB METHODC METHODD METHODE METHODF METHODG METHODH METHODI METHODJ METHODK METHODL METHODM WANTWORK AVAILBLE EDUCSTAT EDUCLEVL COURATT COURLEN HATLEVEL ILOSTAT NA111D NA11S ISCO1D NA112J1D NA112JS NA11PR1D NA11PRS ISCOPR1D DURUNE EDUC4WN HATLEV1D ISCO3D LEAVCLAS NACE1D NACE2J1D NACEPR1D AGERESID SIGNISAL STARTIME LEAVTIME / varx=x1 TO x86. COMPUTE varx=var. END REPEAT. RECODE SIGNISAL (4=-1) (ELSE=COPY) INTO x84. RECODE REGION ('00'=-1) (ELSE=1) INTO x87. RECODE REGIONW ('-1'=-1) ('-2'=-2) (ELSE=1) INTO x88. EXECUTE. AGGREGATE OUTFILE=* MODE=ADDVARIABLES OVERWRITE=YES / x1 TO x88=MAX(x1 TO x88). EXECUTE. DO REPEAT var=REC HHSEQNUM REFYEAR REFWEEK INTWEEK DEGURBA HHINST INTWAVE INTQUEST REM HHPRIV SEX AGE NATIONAL YEARESID COUNTRYB PROXY WSTATOR NOWKREAS STAPRO COUNTRYW YSTARTWK MSTARTWK FTPT TEMP TEMPDUR HWUSUAL HWACTUAL HWOVERP HWOVERPU HOURREAS WISHMORE HWWISH LOOKOJ EXIST2J STAPRO2J HWACTUA2 EXISTPR YEARPR MONTHPR STAPROPR ISCOPR3D SEEKWORK SEEKTYPE SEEKDUR METHODA METHODB METHODC METHODD METHODE METHODF METHODG METHODH METHODI METHODJ METHODK METHODL METHODM WANTWORK AVAILBLE EDUCSTAT EDUCLEVL COURATT COURLEN HATLEVEL ILOSTAT NA111D NA11S ISCO1D NA112J1D NA112JS NA11PR1D NA11PRS ISCOPR1D DURUNE EDUC4WN HATLEV1D ISCO3D LEAVCLAS NACE1D NACE2J1D NACEPR1D AGERESID SIGNISAL / varx=x1 TO x84. IF varx<0 var=-3. END REPEAT. DO REPEAT var=STARTIME LEAVTIME / varx=x85 TO x86. IF varx<-100 var=-103. END REPEAT. DO IF x87<0. RECODE REGION (ELSE='-3'). END IF. DO IF x88<0. RECODE REGIONW (ELSE='-3'). END IF. EXECUTE. DELETE VARIABLES x1 TO x88. EXECUTE. *--- Recode Variabels in Specific Cases ---. * in certain cases, members of the armed forces had been coded wrong in the 3-digit ISCO. RECODE ISCO3D ISCOPR3D (0=10) (11=10) (ELSE=COPY). EXECUTE. *--- Declare User-Missing Values ---. MISSING VALUES REC HHSEQNUM REFYEAR REFWEEK INTWEEK COUNTRY DEGURBA HHINST INTWAVE INTQUEST REM YEAR HHPRIV SEX AGE NATIONAL YEARESID COUNTRYB PROXY WSTATOR NOWKREAS STAPRO SIGNISAL COUNTRYW YSTARTWK MSTARTWK FTPT TEMP TEMPDUR HWUSUAL HWACTUAL HWOVERP HWOVERPU HOURREAS WISHMORE HWWISH LOOKOJ EXIST2J STAPRO2J HWACTUA2 EXISTPR YEARPR MONTHPR STAPROPR ISCOPR3D SEEKWORK SEEKTYPE SEEKDUR METHODA METHODB METHODC METHODD METHODE METHODF METHODG METHODH METHODI METHODJ METHODK METHODL METHODM WANTWORK AVAILBLE EDUCSTAT EDUCLEVL COURATT COURLEN HATLEVEL ILOSTAT NA111D NA11S ISCO1D NA112J1D NA112JS NA11PR1D NA11PRS ISCOPR1D DURUNE EDUC4WN HATLEV1D ISCO3D LEAVCLAS NACE1D NACE2J1D NACEPR1D AGERESID (-9 THRU -1) / STARTIME LEAVTIME (-103 THRU -101). MISSING VALUES REGION REGIONW ('-1','-2','-3'). EXECUTE. *--- Delete Recoded Alphanumeric Variables ---. DELETE VARIABLES QUARTER_ COUNTRY_ COUNTRYB_ COUNTRYW_ NATIONAL_ NA111D_ NA112J1D_ YEARESID_ NA11PR1D_ HATLEV1D_ NACE1D_ NACE2J1D_ NACEPR1D_. EXECUTE. *--- Define Variable and Value Labels ---. INCLUDE FILE='LABEL_SYNTAX_PATH/Labels_EULFS_1998-2010.sps'. *--- Save SAV-Files ---. SAVE OUTFILE= !QUOTE(!CONCAT('SPSS_DATA_PATH',!i,'.sav')). !DOEND. !ENDDEFINE. *---------------------------------------------- End Definition Macro ----------------------------------------------. *-------------------------------------------------- Invoke Macro --------------------------------------------------. !readmac datfile=FILENAMES %.