************************************************************ * PROGRAM: AAB.SAS Attitudes About Behavior * * PROGRAMMER: Floyd Hummel * * DATE: 8/25/98 * * MODIFIED: 1/28/2004, John Klaric * * 2/10/2004, addition of linmean macro * * * * PURPOSE: Create a SAS dataset containing derived * * variables from raw data in the * * CxU datasets. These datasets contain * * the 16 items from a scale measuring * * attitudes toward specific delinquent * * behaviors. Originally, 2 subscales: * * Attitude towards SA, and attitude towards * * delinquency. FA extracts 2 interpretable * * factors: Attitudes toward Serious * * & Less Serious Offenses * * * * INPUT: C&yr.U * * * * OUTPUT: AAB&yr * ************************************************************; ** Enter year of data collection -- Possible years (as of 2004): 8,9*; %let yr =9 ; libname sasin "N:\Datasets\Child\attitudesaboutbehavior\U"; libname sasout "N:\Datasets\Child\attitudesaboutbehavior\S"; *************** DO NOT MODIFY BELOW THIS LINE ******************************; %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; %macro linsum; 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(*))*dim(sumvars); proc sort; by site tcid; run; %mend linsum; /* Merging unscored datasets with demographic data*/ data sasout.aab&yr.; SET sasin.c&yr.u; run; *****************************************************************************; /* Specify definitions for SCALE VARIABLES below: ** */ %let INDATA = sasout.aab&yr.; ************************************************************; %let var_name = AAB&yr.SER; %let var_labl = %str(Serious Offenses - AAB - Year &yr.) ; %let var_list = %str(c&yr.u6-c&yr.u8 c&yr.u10-c&yr.u16); %linmean; ************************************************************; %let var_name = AAB&yr.LSS; %let var_labl = %str(Less Serious Offenses - AAB - Year &yr.) ; %let var_list = %str(c&yr.u1-c&yr.u5 c&yr.u9); %linmean; ************************************************************; %let var_name = AAB&yr.SAB; %let var_labl = %str(AttitudeTowardsSubsAbuse - AAB - Year &yr.) ; %let var_list = %str(c&yr.u12-c&yr.u16); %linmean; ************************************************************; %let var_name = AAB&yr.DEL; %let var_labl = %str(AttitudeTowardsDelinquency - AAB - Year &yr.) ; %let var_list = %str(c&yr.u1-c&yr.u3 c&yr.u5-c&yr.u11); %linmean; ************************************************************; %let var_name = AAB&yr.TOT; %let var_labl = %str(Item Total - AAB - Year &yr.) ; %let var_list = %str(c&yr.u1-c&yr.u16); %linmean; ************************************************************; proc sort; by cohort site tcid; run;