Skip past navigation to main part of page
 
Melbourne Institute Homepage
---

SPSS program to create long longitudinal file

/* Example SPSS program to create balanced responding person */
/* long longitudinal file. */
/* Created by: Simon Freidin 02/12/05 (Updated by: Nicole Watson) */
 
/* ************************************************************************* */
/* Section 1: locate datasets, get balanced cases, load renaming macro */
/* ************************************************************************* */
set printback=listing.
* (1.1) Files
* (1.1.1) Input: combined files.
* You MUST edit the name paths in ALL of Sections 1.1.1 to Section 1.1.4
file handle w1c /name='e:\a\written datasets\a60\SPSS a60c\Combined a60c.sav'.
file handle w2c /name='e:\b\written datasets\b60\SPSS b60c\Combined b60c.sav'.
file handle w3c /name='e:\c\written datasets\c60\SPSS c60c\Combined c60c.sav'.
file handle w4c /name='e:\d\written datasets\d60\SPSS d60c\Combined d60c.sav'.
file handle w5c /name='e:\e\written datasets\e60\SPSS e60c\Combined e60c.sav'.
file handle w6c /name='e:\f\written datasets\f60\SPSS f60c\Combined f60c.sav'.
file handle master /name='e:\f\written datasets\f60\SPSS f60c\Master f60c.sav' .
* (1.1.2) Output: generated renaming program, balanced master file.
file handle renprog /name='e:\xwave\rename.sps'.
file handle balanced /name='e:\xwave\balanced.sav'.
* (1.1.3) Output: intermediate longitudinal files.
file handle w1l /name='e:\xwave\w1l.sav'.
file handle w2l /name='e:\xwave\w2l.sav'.
file handle w3l /name='e:\xwave\w3l.sav'.
file handle w4l /name='e:\xwave\w4l.sav'.
file handle w5l /name='e:\xwave\w5l.sav'.
file handle w6l /name='e:\xwave\w6l.sav'.
* (1.1.4) Output: final balanced long responding person file.
 
file handle w1w6long /name='e:\xwave\w1w6long.sav'.
 
* (1.2) Identify cases responding in all waves from the master file.
* status codes: 1=face to face interview, 2=telephone interview.
* Release 6 balanced panel, master n = 8864.
get file=master.
select if any(afstatus,1,2) and any(bfstatus,1,2) and any(cfstatus,1,2)
 and any(dfstatus,1,2) and any(efstatus,1,2) and any(ffstatus,1,2).
sort cases by xwaveid.
save outfile=balanced/keep=xwaveid ahhrpid bhhrpid chhrpid dhhrpid ehhrpid fhhrpid.
 
* (1.3) Load macro to write a program to rename variables, dropping first.
*    character (wave identifier) of variable name. ID's are not renamed.
define renwave (!pos=!cmdend).
get file=!1.
n of cases 1.
set printback=off /results=no.
flip.
set printback=on /results=yes.
compute x=1.
match files file=*/last=last/by x.
string out (a60).
do if $casenum=1.
write outfile=renprog/"rename variables".
end if.
/* exclude ids from renaming */
do if (index(lower(case_lbl),'waveid')>0) or
(index(lower(case_lbl),'hhrhid')>0) or
(index(lower(case_lbl),'hhraid')>0) or
(index(lower(case_lbl),'hhrpid')>0) .
compute out=concat(" (",case_lbl," = ",lower(case_lbl),")").
else.
compute out=concat(" (",lower(case_lbl)," = ",substr(lower(case_lbl),2),")").
end if.
write outfile=renprog/out.
do if (last).
write outfile=renprog/" .".
end if.
exe.
!enddefine.
/* end of macro */
 
/* ************************************************************************* */
/* Section 2: create "long" balanced responding person longitudinal file */
/* ************************************************************************* */
* (2.1) Rename each wave: run macro "renwave" and then include.
* the generated rename program.
* command file. Keep only those records from balanced master file.
 
renwave w1c .
get file=w1c.
include file=renprog.
sort cases by xwaveid.
match files file=balanced/in=inm1/file=*/by xwaveid.
select if (inm1).
save outfile=w1l.
 
renwave w2c .
get file=w2c.
include file=renprog.
sort cases by xwaveid.
match files file=balanced/in=inm2/file=*/by xwaveid.
select if (inm2).
save outfile=w2l.
 
renwave w3c .
get file=w3c.
include file=renprog.
sort cases by xwaveid.
match files file=balanced/in=inm3/file=*/by xwaveid.
select if (inm3).
save outfile=w3l.
 
renwave w4c .
get file=w4c.
include file=renprog.
sort cases by xwaveid.
match files file=balanced/in=inm4/file=*/by xwaveid.
select if (inm4).
save outfile=w4l.
 
renwave w5c .
get file=w5c.
include file=renprog.
sort cases by xwaveid.
match files file=balanced/in=inm5/file=*/by xwaveid.
select if (inm5).
save outfile=w5l.
 
renwave w6c .
get file=w6c.
include file=renprog.
sort cases by xwaveid.
match files file=balanced/in=inm6/file=*/by xwaveid.
select if (inm6).
save outfile=w6l.
 
* (2.3) Add datasets together to create the balanced long longitudinal.
* responding person file - Add a year variable - Balanced panel long.
add files file=w1l/in=w1/file=w2l/in=w2/file=w3l/in=w3/file=w4l/in=w4/
 file=w5l/in=w5/file=w6l/in=w6.
if (w1=1) year=2001.
if (w2=1) year=2002.
if (w3=1) year=2003.
if (w4=1) year=2004.
if (w5=1) year=2005.
if (w6=1) year=2006.
 
save outfile=w1w6long.
 
freq vars=year.
/*(2.4) Supplementary programme to create longitudinal weights variables for Responding and */
/* Enumerated Persons specifically to be used in a balanced file of 6 waves. */
 
get file=w1w6long/drop=lnwtrp lnwte.
sort cases by xwaveid.
match files file=*table=w6c/rename=(flnwtrp flnwte= lnwtrp lnwte)/keep=xwaveid
 to year lnwtrp lnwte/by xwaveid.
means vars=lnwtrp by year.
save outfile=w1w6long_1.

 

top of pagetop of page

HILDA Contact us

Contact the University : Disclaimer & Copyright : Privacy : Accessibility