****************************************************************** * * * PROGRAM : PPI.SAS * * * * PROGRAMMER : Anne Maumary-Gremaud * * * * PURPOSE : Create a SAS dataset containing derived * * variables for Parenting Practices Measure * * * * MODIFIED: Jennifer Godwin to run on aggregate dataset * * MODIFIED: Donald Woolley to run on new aggregate dataset * * * ******************************************************************; libname SASIN 'L:\Datasets\Parent\parentingpractices\U' ; libname SASOUT 'L:\Datasets\Parent\parentingpractices\S' ; %let yr= 1 ; %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; **** DO NOT MODIFY BELLOW THIS LINE **************************************************; data ppi; set SASIN.p&yr.r; ** Inverse the code for items # 3,12,14,15,17 **; array O[5] p1r3 p1r12 p1r14 p1r15 p1r17; array R[5] p1r3r p1r12r p1r14r p1r15r p1r17r; do i=1 to 5; R[i]=5-O[i]; end; drop i; label P1R3r="Reversed -How Often Does Punishment Work?" P1R12r="Reversed -How Often Punishment Improves Behavior?" P1R14r="Reversed -How Often Does TC Do What TC is Told?" P1R15r="Reversed -How Often Does TC Accept Punishment?" P1R17r="Reversed -Will TC Stop Doing Something When Told?"; run; %let indata=ppi; %let var_name = PPI&yr.CON; %let var_labl = %str(Consistency Mean Score PPI Yr&yr.) ; %let var_list = %str(P&yr.R1 P&yr.R4 P&yr.R6 P&yr.R7 P&yr.R10 P&yr.R13); %linmean ; %let var_name = PPI&yr.EFF; %let var_labl = %str(Effectiveness Mean Score PPI Yr&yr.) ; %let var_list = %str(P&yr.R3R P&yr.R9 P&yr.R12R P&yr.R14R P&yr.R15R P&yr.R17R); %linmean ; %let var_name = PPI&yr.PUN; %let var_labl = %str(Punitiveness Mean Score PPI Yr&yr.) ; %let var_list = %str(P&yr.R2 P&yr.R5 P&yr.R8 P&yr.R11 P&yr.R16); %linmean ; data sasout.ppi&yr.; set ppi; run; proc sort;by cohort site tcid; run;