I generally suggest that instead of character values like yes/no true/false, has condtion x/ does not to use numeric values of 1/0.
So instead of
if 0 <= Depression_Score < 10 then Depression_Indicator = 'No';
else if Depression_Score >= 10 then Depression_Indicator = 'Yes';
Something like
if not missing(Depression_Score) then Depression_Indicator =(Depression_Score >= 10);
SAS will create 1/0 values for true/false comparisons.
One reason to use 1/0 coded values is you can request the SUM of the variable to get the number of 1(or Yes) values and the Mean is the percent yes.
A custom format can display the text Yes/No when needed:
Proc format;
value yn
1='Yes'
0='No'
other=' ';
run;
A similar format could display the words "Prevalent" or "not prevalent" by setting the 1/0 condition.
OR since your values appear to be numeric to begin based on single variables you could likely skip creating the new variables entirely.
proc format;
value depression
0 -<10 = "No"
10-high = "Yes"
;
value gender
1='Male'
2='Female'
;
value lbxtc
0 - 180 ='Not Prevalent'
180<high = 'Prevalent'
;
/* follow the pattern for LBDHDD etc*/
run;
proc print data=data_thesis;
var Depression_Score riagendr LBXTC ;
format Depression_Score depression. riagendr gender.
LBXTC LBXTC.;
;
run;
The groups created by formats are generally usable by analysis, graphing and report procedures.
The difference might come in if you need/want to do something with how many conditions have a 'Yes' or 'prevalent' condition. Then if you use the 1/0 coding then summing them gives you a per person count.
Without duplicating a lot of if/then/else code in counting.
... View more