*program 3.
* syntax to extract panel level variables.
* from US Courts of Appeal data.
* input files.
*     Appelate Judge data and reduced Songer dataset.
* output file.
*  panel dataset. 
*  Leonard Ray, Louisiana State University, August, 2000.


** STEP ONE **.

** Creating assignment file with each case/judge as one record.
** File is based on the Songer Courts of Appeal dataset.

GET FILE='C:\My Documents\Research\COA_AG\CoAdata.sav'
/KEEP=casenum codej1  codej2  codej3  codej4  codej5
              codej6  codej7  codej8  codej9  codej10
              codej11 codej12 codej13 codej14 codej15.
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav'.

** writing out 15 temp files for each possible judge on a case.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej1
/RENAME=(codej1=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP1.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej2
/RENAME=(codej2=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP2.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej3
/RENAME=(codej3=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP3.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej4
/RENAME=(codej4=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP4.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej5
/RENAME=(codej5=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP5.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej6
/RENAME=(codej6=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP6.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej7
/RENAME=(codej7=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP7.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej8
/RENAME=(codej8=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP8.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej9
/RENAME=(codej9=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP9.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej10
/RENAME=(codej10=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP10.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej11
/RENAME=(codej11=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP11.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej12
/RENAME=(codej12=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP12.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej13
/RENAME=(codej13=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP13.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej14
/RENAME=(codej14=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP14.sav'.

GET FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPa.sav' 
/KEEP= casenum codej15
/RENAME=(codej15=judge).
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP15.sav'.

** merging temp files to produce master  assignment file.
** with judge/case as record.
ADD FILES FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP1.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP2.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP3.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP4.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP5.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP6.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP7.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP8.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP9.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP10.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP11.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP12.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP13.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP14.sav'
         /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMP15.sav'.

*remove superfluous records.
SELECT IF (MISSING(JUDGE) NE 1).

*remove district judges who sat on appellate panels.
SELECT IF (JUDGE LE 10000).

* Reassigning ID numbers to judges who changed circuit.
* and thus have 2 id numbers in the songer data, but one in the auburn data.

if (judge EQ 218 ) judge =722.
if (judge EQ 346 ) judge =0.
if (judge EQ 536 ) judge =542.
if (judge EQ 624 ) judge =722.
if (judge EQ 970 ) judge =971.
if (judge EQ 973 ) judge =970.
if (judge EQ 1007) judge =808.
if (judge EQ 1015) judge =819.
if (judge EQ 1101) judge =502.
if (judge EQ 1102) judge =510.
if (judge EQ 1104) judge =514.
if (judge EQ 1106) judge =516.
if (judge EQ 1107) judge =521.
if (judge EQ 1108) judge =523.
if (judge EQ 1109) judge =524.
if (judge EQ 1110) judge =570.
if (judge EQ 1111) judge =530.
if (judge EQ 1112) judge =534.
if (judge EQ 1113) judge =537.
if (judge EQ 1114) judge =540.
if (judge EQ 1115) judge =545.
if (judge EQ 1116) judge =554.
if (judge EQ 1117) judge =555.
if (judge EQ 1118) judge =556.

SORT CASES BY JUDGE CASENUM.


*saving master assignment file of judge/cases.
SAVE OUTFILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPb.sav'.
EXECUTE.

** STEP TWO **.
* merging assignment file with judicial data.
* with judge data written to multiple records.

GET FILE='C:\My Documents\Research\Coa_ag\auburn.sav'.
*select relevant judges.
COMPUTE YEARL =RTRIM(YEARL).
COMPUTE YEARL =LTRIM(YEARL).
RECODE YEARL (CONVERT)('Active Service' = 1996) INTO LYEARNUM.
select if (lyearnum ge 1970).
select if (missing(judge) ne 1).
execute.

MATCH FILES /FILE='C:\My Documents\Research\Coa_ag\TEMP\TEMPb.sav'
            /TABLE=*
            /BY judge.
EXECUTE.
SORT CASES BY CASENUM JUDGE.

** STEP THREE **.
* extraction of characteristics of judges for each panel.
* using AGGREGATE command.
* resulting temp file "panels.sav" can be merged.
* back into the Songer data.

* W-nominate scores used for presidential ideology.
* downloaded from Poole & Rosenthal website.
* file congress.zip.
* first dimension used.
COMPUTE PRES =RTRIM(PRES).
COMPUTE PRES =LTRIM(PRES).
if (pres eq "F. Roosevelt") w_nomin=-0.442.
if (pres eq "Truman")       w_nomin=-0.442.
if (pres eq "Eisenhower")   w_nomin= 0.267.
if (pres eq "Kennedy")      w_nomin=-0.524.
if (pres eq "L.B. Johnson") w_nomin=-0.412.
if (pres eq "Nixon")        w_nomin= 0.280.
if (pres eq "Ford")         w_nomin= 0.251.
if (pres eq "Carter")       w_nomin=-0.470.
if (pres eq "Reagan")       w_nomin= 0.479.
if (pres eq "Bush")         w_nomin= 0.456.
if (pres eq "Clinton")      w_nomin=-0.363.

NUMERIC DEMOCRAT.
COMPUTE DEMOCRAT=0.
IF (party EQ "Democrat") DEMOCRAT=1

NUMERIC stateag.
COMPUTE stateag=0.
IF (statecab EQ "Attorney General") stateag=1.

AGGREGATE 
  OUTFILE='C:\My Documents\Research\COA_Ag\TEMP\panels.sav'
 /BREAK=CASENUM
 /dempanel=MEAN(democrat)
 /nompanel =MEAN(w_nomin)
 /agpanel =SUM(stateag).

execute.