DATA Step, Macro, Functions and more

Issue with calling result

Reply
Contributor afs
Contributor
Posts: 28

Issue with calling result

 

 

%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;

 

Super User
Posts: 7,762

Re: Issue with calling result

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.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
SAS Super FREQ
Posts: 8,864

Re: Issue with calling result

Posted in reply to KurtBremser

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

Ask a Question
Discussion stats
  • 2 replies
  • 156 views
  • 1 like
  • 3 in conversation