***************************************************** *Program: SPG.sas * *Programmer: Cari McCarty * *Date: 12/2000 * * * *Modified: J. Godwin 9/3/2004 * * To run off aggregate data * * * *Input: pXv * *Output: SPQx * *****************************************************; libname sasin 'N:\Datasets\Parent\supervisionprimarycaregiver\U'; libname sasout 'N:\Datasets\Parent\supervisionprimarycaregiver\S'; **Enter year of data collection**; %let yr = 11; data SPG; set sasin.p&yr.v; array one (*) p&yr.v1-p&yr.v3 p&yr.v5 p&yr.v7-p&yr.v20; do i= 1 to dim(one); if one(i)=8 then one(i)=.; end; P&yr.v18r=6-P&yr.v18; if p&yr.v4b ne 'a' and p&yr.v4b ne 'p' then p&yr.v4b = . ; if p&yr.v6b ne 'a' and p&yr.v6b ne 'p' then p&yr.v6b = . ; if p&yr.v4b eq 'a' then SPG&yr.snc = p&yr.v4a + 0; if p&yr.v4b eq 'p' and p&yr.v4a ge 100 and p&yr.v4a le 1200 then SPG&yr.snc = p&yr.v4a + 1200; if p&yr.v4b eq 'p' and p&yr.v4a gt 1200 then SPG&yr.snc = p&yr.v4a + 0; if p&yr.v6b eq 'a' then SPG&yr.wec = p&yr.v6a + 0; if p&yr.v6b eq 'p' and p&yr.v6a ge 100 and p&yr.v4a le 1200 then SPG&yr.wec = p&yr.v6a + 1200; if p&yr.v6b eq 'p' and p&yr.v6a gt 1200 then SPG&yr.wec = p&yr.v6a + 0; label SPG&yr.snc = "School Night Curfew SPG Yr&yr." SPG&yr.wec = "Weekend Night Curfew SPG Yr&yr." P&yr.v18r = "bad influence reversed" ; drop i; run; %macro linmean; data &INDATA; set &INDATA; label &var_name="&var_labl"; array sumvars {*} &var_list; if n(of sumvars(*))>=.5*dim(sumvars) then &var_name=mean(of sumvars(*)); proc sort; by site tcid; run; %mend linmean; %let INDATA = SPG; **Compute Supervision/Involvement scale**; %let var_name=SPG&yr.SUP; %let var_labl=%str(Supervision/Involvement SPG Yr&yr.); %let var_list=%str(P&yr.v7 P&yr.v10-P&yr.v12 P&yr.v19); %linmean; **Compute Discussing Daily Activities scales**; %let var_name=SPG&yr.DAY; %let var_labl=%str(Discussing Daily Activities SPG Yr&yr.); %let var_list=%str(P&yr.v1 P&yr.v2); %linmean; **Compute Curfew Time Scale**; %let var_name=SPG&yr.CFW; %let var_labl=%str(Curfew Time SPG Yr&yr.); %let var_list=%str(P&yr.v3 P&yr.v5); %linmean; **Compute Influence of Friends Scale**; %let var_name=SPG&yr.INF; %let var_labl=%str(Influence of Friends SPG Yr&yr.); %let var_list=%str(P&yr.v17 P&yr.v18r); %linmean; data sasout.SPG&yr.; set spg; run; proc sort;by cohort site tcid;run;