BookmarkSubscribeRSS Feed
deleted_user
Not applicable
Problem with macro,
I am tyring to run this macro, but am a little confused.

%macro AgeSplit(varname=);
if (agegrup=1 and a&varname ge 1) then &varname.y=1;
else if (agegrup=1 and b&varname ge 1) then &varname.y=1;

%mend;

%AgeSplit(varname=mim);
run;


When I try to run this I get log error stating this:
NOTE: Line generated by the invoked macro "AGESPLIT".
1 *** Youngest cohort ***; if (aagegrup=1 and a&varname ge 1) then &varname.y=1;
--
180

ERROR 180-322: Statement is not valid or it is used out of proper order.

NOTE: Line generated by the invoked macro "AGESPLIT".
1 else
----
180
1 ! if (bagegrup=1 and b&varname ge 1) then &varname.y=1; *** Middle cohort ***; else if

ERROR 180-322: Statement is not valid or it is used out of proper order.

My set of variables of interst are mim from my data set. I have more then one but put one here for simplicity. But I am not inserting it correctly into this macro. ‘varname’ is a place holder, but I am not sure where I should replace ‘varname’ with my variable of interest.

Can anyone help?
1 REPLY 1
Doc_Duke
Rhodochrosite | Level 12
put your comments in /* ... */ format. Statement form comments can't be used in the middle of an IF-THEN-ELSE construct.
How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 951 views
  • 0 likes
  • 2 in conversation