Hi.
I am trying to display the computed variable Hypertensive such that it is shown as "Hypertensive?" and is computed as 'Yes' or 'No' depending on conditional factors.
First of all, I am getting no display for yes or no if I leave the variable name as Hypertensive, as opposed to displaying Hyertensive?
Second, I have no idea how to convert the variable hypertensive to display hypertensive? in proc report.
Any help would be much appreciated. Thanks!
-----------------------------------
Libname Learn '/folders/myfolders/Learn' ;
Title "Hypertensive Patients" ;
proc report data=learn.BloodPressure nowd headline ls=80 ;
columns Gender SBP DBP Hypertensive ;
define SBP / display "SBP" ;
define DBP / display "DBP" ;
compute Hypertensive / character length=8 ;
define Hypertensive / display "Hypertensive?" ;
If Gender=F then do ;
If (SBP gt 138 or DBP gt 88) then Hypertensive='Yes';
else Hypertensive='No' ;
end ;
If Gender=M then do ;
If (SBP gt 140 or DBP gt 90) then Hypertensive='Yes';
else Hypertensive='No' ;
end ;
endcomp ;
run ;
Like this?
proc report data=SASHELP.CLASS(obs=10);
columns NAME SEX WEIGHT HYPERTENSIVE;
compute HYPERTENSIVE / character length=8 ;
if SEX='F' then do ;
if (WEIGHT.sum gt 100 ) then HYPERTENSIVE='Yes';
else HYPERTENSIVE='No' ;
end ;
if SEX='M' then do ;
if (WEIGHT.sum gt 110 ) then HYPERTENSIVE='Yes';
else HYPERTENSIVE='No' ;
end ;
endcomp ;
run ;
Name | Sex | Weight | HYPERTENSIVE |
---|---|---|---|
Alfred | M | 112.5 | Yes |
Alice | F | 84 | No |
Barbara | F | 98 | No |
Carol | F | 102.5 | Yes |
Henry | M | 102.5 | No |
James | M | 83 | No |
Jane | F | 84.5 | No |
Janet | F | 112.5 | Yes |
Jeffrey | M | 84 | No |
John | M | 99.5 | No |
Thanks.
As for getting the hypertensive to display 'true' or 'false', it was simple:
I did not put the gender ='f' and gender='m' in apostrophes, as I should have for a character variable. When I corrected this, after reading your post, it worked.
As for converting the variable hypertensive to hypertensive? for displaying on the proc report, I am not sure how to do this. However, I did get most of it. If anyone else has suggestions on this that would be great. If not, that is ok.
Libname Learn '/folders/myfolders/Learn' ;
Title "Hypertensive Patients" ;
proc report data=learn.BloodPressure nowd headline ls=80 ;
columns Gender SBP DBP Hypertensive ;
define SBP / display "SBP" ;
define DBP / display "DBP" ;
compute Hypertensive / character length=8 ;
If Gender='F' then do ;
If (SBP gt 138 or DBP gt 88) then Hypertensive='Yes';
else Hypertensive='No' ;
end ;
If Gender='M' then do ;
If (SBP gt 140 or DBP gt 90) then Hypertensive='Yes';
else Hypertensive='No' ;
end ;
endcomp ;
hypertensive(rename=hypertensive?) ;
run ;
The question-mark is not a valid char in a name. But you can assign a label to Hypertensive to be displayed as "Hypertensive?"
proc report data=SASHELP.CLASS(obs=10);
columns NAME SEX WEIGHT HYPERTENSIVE;
define HYPERTENSIVE / computed "Hypertensive?";
compute HYPERTENSIVE / character length=8 ;
if SEX='F' then do ;
if (WEIGHT.sum gt 100 ) then HYPERTENSIVE='Yes';
else HYPERTENSIVE='No' ;
end ;
if SEX='M' then do ;
if (WEIGHT.sum gt 110 ) then HYPERTENSIVE='Yes';
else HYPERTENSIVE='No' ;
end ;
endcomp ;
run ;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.