The following code checks whether an exposure value is less than 0 or . and if it is makes it 0. It then puts this into a new field called Raw_Agg_ and whatever the user puts in the variable cov, but I am unable to get SAS to create a new column header out of Raw_Agg_ and the macro variable cov
%macro expo_check(exposure_field, cov); if &exposure_field. < 0 or &exposure_field. = . then Raw_Agg_ || &cov. = 0; run; %mend;
Any help would be greatly appreciated.
Thanks
You don't need the concatenation operator.
%macro expo_check(exposure_field, cov);
if &exposure_field. < 0 or &exposure_field. = . then Raw_Agg_&cov. = 0;
run;
%mend;
You don't need the concatenation operator.
%macro expo_check(exposure_field, cov);
if &exposure_field. < 0 or &exposure_field. = . then Raw_Agg_&cov. = 0;
run;
%mend;
Thanks, that was easy I was trying all sorts of other complicated stuff.
You probably don't need the run statement either. It should reside in the calling scope.
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.