**************************************************************** * PROGRAM: IER4SC1.SAS * * PROGRAMMER: R. Laird (program begun by K. Noser) * * DATE: started 04/04/96, completed 1/27/97 * * * * PURPOSE: Create a SAS dataset containing derived * * variables of the Interview on Emotional * * Experiences grades 3+ (IER). * * * * MODIFIED: 11/9/01 Patrick Malone to run off aggregated * * datasets. * ****************************************************************; **Fill out information in next section for data processed ** **in this run. **; %let source=Child; %let src=c; %let inst=j; %let longname=interviewonemotionalex; %let scoredname=IER; **Enter high-level path (e.g., l:\datasets) **; %let path=n:\datasets; **Enter year of data collection **; %let yr=4; **Enter variable which must be present to retain record (typically interviewer id) **; %let screen=year; **Specify Lib for input datasets **; Libname SASIN "&path.\&source.\&longname.\U"; **Specify Lib for output datasets **; Libname SASOUT "&path.\&source.\&longname.\S"; ****** DO NOT MODIFY BELOW THIS LINE **************; ** Process IER data **; data ier; set SASIN.&src.&yr.&inst; if &screen ne ''; *************** 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; *****************************************************************************; /* Process Interview on Emotional Experiences 3+ */ /* Count Appropriate Reponses for question 1; 4 emotions */ array APPROP{4} C&yr.Jh1 C&yr.Js1 C&yr.Ja1 C&yr.Jw1; IER&yr.ASC = 0; do i = 1 to 4; if (approp[i] = 0) then approp[i] = .; else if (approp[i] = 2) then IER&yr.ASC +1; end; label IER&yr.ASC = "Appropriateness Score IEE 3+ Y&yr."; array APPROP2{3} C&yr.Js1 C&yr.Ja1 C&yr.Jw1; IER&yr.AS2 = 0; do i = 1 to 3; if (approp2[i] = 0) then approp2[i] = .; else if (approp2[i] = 2) then IER&yr.AS2 +1; end; label IER&yr.AS2 = "Appropriateness Score without happy item IEE 3+ Y&yr."; /* Standardized Count Appropriate Reponses for question 1; 4 emotions */ array APPROPZ{4} C&yr.Jh1z C&yr.Js1z C&yr.Ja1z C&yr.Jw1z; **Need to convert to dichotomous variables for items c&yr.bex1, 5, 11, & 17 first**; do i=1 to 4; if APPROP(i)=2 then APPROPZ(i) = 1; else if APPROP(i)=1 then APPROPZ(i)=0; else if APPROP(i)=0 then APPROPZ(i)=.; end; /* Counters for each of the 10 Response Categories */ array RESPONSE{7} C&yr.Jh3 C&yr.Js3 C&yr.Ja3 C&yr.Jw3 C&yr.Js13 C&yr.Ja14 C&yr.Jw13; IER&yr.NRS = 0; IER&yr.PAG = 0; IER&yr.VAG = 0; IER&yr.APS = 0; IER&yr.ADS = 0; IER&yr.CWA = 0; IER&yr.CWP = 0; IER&yr.SCS = 0; IER&yr.PSS = 0; IER&yr.DNS = 0; do i = 1 to 7; if (response[i] = 0) then IER&yr.NRS + 1; else if (response[i] = 1) then IER&yr.PAG + 1; else if (response[i] = 2) then IER&yr.VAG + 1; else if (response[i] = 3) then IER&yr.APS + 1; else if (response[i] = 4) then IER&yr.ADS + 1; else if (response[i] = 5) then IER&yr.CWA + 1; else if (response[i] = 6) then IER&yr.CWP + 1; else if (response[i] = 7) then IER&yr.SCS + 1; else if (response[i] = 8) then IER&yr.PSS + 1; else if (response[i] = 9) then IER&yr.DNS + 1; end; label IER&yr.NRS = "No Response score IEE 3+ Y&yr." IER&yr.PAG = "Physical Agg score IEE 3+ Y&yr." IER&yr.VAG = "Verbal Agg score IEE 3+ Y&yr." IER&yr.APS = "Avoidant/Passive score IEE 3+ Y&yr." IER&yr.ADS = "Affective Display score 3+ IEE Y&yr." IER&yr.CWA = "Comm w/Adults score IEE 3+ Y&yr." IER&yr.CWP = "Comm w/Peers score IEE 3+ Y&yr." IER&yr.SCS = "Self-Control score IEE 3+ Y&yr." IER&yr.PSS = "Prosocial score IEE 3+ Y&yr." IER&yr.DNS = "Do Nothing score IEE 3+ Y&yr." C4JH1z ="Happy 1 A - standardized" C4JS1z =" Sad 1 a - standardized" C4JA1z ="Angry 1 a - standardized" C4JW1z ="Worried 1 - standardized"; /* Define 3 subscales for IEE - Aggression, Communication, Positive */ IER&yr.AGG = mean(IER&yr.PAG, IER&yr.VAG); IER&yr.COM = mean(IER&yr.CWP, IER&yr.CWA); IER&yr.PRS = mean(IER&yr.SCS, IER&yr.PSS); label IER&yr.AGG = "Aggression Scale IEE3+ Y&yr." IER&yr.COM = "Communication Scale IEE3+ Y&yr." IER&yr.PRS = "Positive Response Scale IEE3+ Y&yr." C&yr.Ja5 = "Angry 3a-show anger on face IEE3+ Y&yr." C&yr.Ja6 = "Angry 3b-tell how angry IEE3+ Y&yr." C&yr.Ja7 = "Angry 3c-say mean things IEE3+ Y&yr." C&yr.Ja8 = "Angry 3d-do mean things IEE3+ Y&yr." C&yr.Ja9 = "Angry 3e-control self IEE3+ Y&yr." c&yr.Ja10 = "Angry 3f-forget about it IEE3+ Y&yr." c&yr.Ja11 = "Angry 3g-want to be by self IEE3+ Y&yr." c&yr.Ja12 = "Angry 3h-want to be w/others IEE3+ Y&yr." c&yr.Ja13 = "Angry 4-how often when w/kids IEE3+ Y&yr." C&yr.Jh5 = "Happy 3a-show happiness face IEE3+ Y&yr." C&yr.Jh6 = "Happy 3b-tell how happy IEE3+ Y&yr." C&yr.Jh7 = "Happy 3c-say nice things IEE3+ Y&yr." C&yr.Jh8 = "Happy 3d-do nice things IEE3+ Y&yr." C&yr.Jh9 = "Happy 4 -how often w/kids IEE3+ Y&yr." C&yr.Js5 = "Sad 3a-show sadness on face IEE3+ Y&yr." C&yr.Js6 = "Sad 3b-tell how sad IEE3+ Y&yr." C&yr.Js7 = "Sad 3c-cant do anything IEE3+ Y&yr." C&yr.Js8 = "Sad 3d-try calm down IEE3+ Y&yr." C&yr.Js9 = "Sad 3e-forget about it IEE3+ Y&yr." c&yr.Js10 = "Sad 3f-be by yourself IEE3+ Y&yr." c&yr.Js11 = "Sad 3g-want to be w/others IEE3+ Y&yr." c&yr.Js12 = "Sad 4-how often when w/kids IEE3+ Y&yr." C&yr.Jw5 = "Worried 3a-show worry on face IEE3+ Y&yr." C&yr.Jw6 = "Worried 3b-tell how worried IEE3+ Y&yr." C&yr.Jw7 = "Worried 3c-cant do anything IEE3+ Y&yr." C&yr.Jw8 = "Worried 3d-try calm down IEE3+ Y&yr." C&yr.Jw9 = "Worried 3e-forget about it IEE3+ Y&yr." c&yr.Jw10 = "Worried 3f-be by yourself IEE3+ Y&yr." c&yr.Jw11 = "Worried 3g-want be w/others IEE3+ Y&yr." c&yr.Jw12 = "Worried 4-how often w/kids IEE3+ Y&yr." ; run; /*Create other subscales for IEE y3+;*/ %let indata=ier; ************************************************************************; %let var_name = IER&yr.PDE; %let var_labl = %str(Physical Display of Emotion Y&yr.) ; %let var_list = %str(C&yr.Js5 C&yr.Ja5 C&yr.Jw5); %linmean ; *************************************************************************; %let var_name = IER&yr.DES; %let var_labl = %str(Discuss Emotions with Someone Y&yr.) ; %let var_list = %str(C&yr.Js6 C&yr.Ja6 C&yr.Jw6); %linmean ; *************************************************************************; %let var_name = IER&yr.FSE; %let var_labl = %str(Feel Strong Emotion Y&yr.) ; %let var_list = %str(C&yr.Js7 C&yr.Jw7); %linmean ; *************************************************************************; %let var_name = IER&yr.USC; %let var_labl = %str(Use Self Control Y&yr.) ; %let var_list = %str(C&yr.Js8 C&yr.Ja9 C&yr.Jw8); %linmean ; *************************************************************************; %let var_name = IER&yr.FEM; %let var_labl = %str(Forget Emotion Y&yr.) ; %let var_list = %str(C&yr.Js9 C&yr.Ja10 C&yr.Jw9); %linmean ; *************************************************************************; %let var_name = IER&yr.BBS; %let var_labl = %str(Be By Self Y&yr.) ; %let var_list = %str(C&yr.Js10 C&yr.Ja11 C&yr.Jw10); %linmean ; *************************************************************************; %let var_name = IER&yr.BWO; %let var_labl = %str(Be With Others Y&yr.) ; %let var_list = %str(C&yr.Js11 C&yr.Ja12 C&yr.Jw11); %linmean ; *************************************************************************; %let var_name = IER&yr.FEK; %let var_labl = %str(Feel Emotion around Other Kids Y&yr.) ; %let var_list = %str(C&yr.Js12 C&yr.Ja13 C&yr.Jw12); %linmean ; *************************************************************************; %let var_name = IER&yr.SMT; %let var_labl = %str(Say/Do Mean Things Y&yr.) ; %let var_list = %str(C&yr.Ja7 C&yr.Ja8); %linmean ; *************************************************************************; proc standard m=0 s=1 OUT=ier; var C&yr.Jh1z C&yr.Js1z C&yr.Ja1z C&yr.Jw1z; run; %let indata=ier; %let var_name = IER&yr.ASCz; %let var_labl = %str(Appropriateness Score Standardized Y&yr.) ; %let var_list = %str(C&yr.Jh1z C&yr.Js1z C&yr.Ja1z C&yr.Jw1z); %linmean ; %let var_name = IER&yr.AS2z; %let var_labl = %str(Appropriateness Score Standardized without happy item Y&yr.) ; %let var_list = %str(C&yr.Js1z C&yr.Ja1z C&yr.Jw1z); %linmean ; data SASOUT.&scoredname.&yr. ; set ier; drop i; run; proc sort; by cohort site tcid; run;