%macro draft(set1,table1,Lable1);
%if &set1=1 %then %do;
proc freq data=dataset;
set &table1;
run;
%end;
%else %do;
proc means data=sasdata.dataset ;
var &table1;
run;
%end;
%mend draft;
I want to get the macro for each of the variables i.e week and accessories
I should be able to get either freq or means report for above-mentioned variables.My code is below .
But seems i am missing something.can anybody advise?
%macro draft;
%means(dataset,week);
%freq(dataset,accessories);
%mend draft;
Your original macro won't work, because you use &table1 as a dataset in one place and a variable list in another.
Hint: get your steps working without macro code, then replace the future dynamic parts with macro variables, then wrap into a macro definition, and then add macro logic (%if). Test at every step of the development, and thoroughly look at the log. Do a google search for each log message you do not understand.
If you run into obstacles you can't overcome, post test data (data step with datalines) and the log.
Hi:
These papers outline the basic process of starting with working code and then converting your code to a Macro program:
http://www2.sas.com/proceedings/sugi28/056-28.pdf
https://support.sas.com/resources/papers/proceedings13/120-2013.pdf
cynthia
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.