I am a little out of practice, I'd like to macro the following code so it will go through each unique 'pcpid' seperatley (from 1 %to end?) and put the pcpid on the graph as a label. I'm thinking a simple macro loop with symputx to macro the variable through the loop but I don't know how to do it. Any help will be appreciated:
title "PCPID = &pcpid";
proc gplot data=test;
symbol i=join v=circle h=2;
plot distance*month;
run;
Why not just use a BY statement?
options nobyline;
title "PCPID = #byval(pcpid)";
proc gplot data=test;
by pcpid ;
symbol i=join v=circle h=2;
plot distance*month;
run;
or is this a situation for a symputx and symgetn?
Why not just use a BY statement?
options nobyline;
title "PCPID = #byval(pcpid)";
proc gplot data=test;
by pcpid ;
symbol i=join v=circle h=2;
plot distance*month;
run;
Awesome suggestion. I'll have to read up on this option as it is new to me. This did exactly what I wanted.
Thanks!
There are a number of writeups for how to do something like that. You might start with this one.
http://www.sascommunity.org/wiki/List_Processing_Basics_Creating_and_Using_Lists_of_Macro_Variables
Personally for really simple problems I normally create a single macro variable with a space delimited list of values using PROC SQL and remember the number of values by saving the value of the automatic macro variable SQLOBS.
proc sql noprint;
select name into :names separated by ' '
from sashelp.class;
%let n=&sqlobs;
quit;
%do i=1 %to &n ;
%let name=%scan(&names,&i,%str( ));
.... &name ....
%end;
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.