<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic run 1 macro multiple time in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/run-1-macro-multiple-time/m-p/432544#M107145</link>
    <description>&lt;P&gt;Hi Everyone,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to run a macro as below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;%macro check (var=var1);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;%macro check(var=var2);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;%macro check (var=var1000);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;So I need to run it over a list of 1000 variable.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I have the list of the name in file "name"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Is there any way that I dont have to write the %check() 1000 time?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Thank you,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;HC&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data source; 
input abc xyz var1 varx;
datalines;
1 0 0 0
0 2 0 1
1 1 1 2
;run;

data name; 
input  name $;
datalines;
abc
xyz
var1
varx
;run;

%macro check (var=);
data _temp_&amp;amp;var; set source;
if abc&amp;gt;0;
run;
%mend;

%check (var=abc);
%check (var=xyz);
%check (var=var1);
%check (var=varx);&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 30 Jan 2018 22:25:22 GMT</pubDate>
    <dc:creator>hhchenfx</dc:creator>
    <dc:date>2018-01-30T22:25:22Z</dc:date>
    <item>
      <title>run 1 macro multiple time</title>
      <link>https://communities.sas.com/t5/SAS-Programming/run-1-macro-multiple-time/m-p/432544#M107145</link>
      <description>&lt;P&gt;Hi Everyone,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to run a macro as below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;%macro check (var=var1);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;%macro check(var=var2);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;%macro check (var=var1000);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;So I need to run it over a list of 1000 variable.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I have the list of the name in file "name"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Is there any way that I dont have to write the %check() 1000 time?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Thank you,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;HC&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data source; 
input abc xyz var1 varx;
datalines;
1 0 0 0
0 2 0 1
1 1 1 2
;run;

data name; 
input  name $;
datalines;
abc
xyz
var1
varx
;run;

%macro check (var=);
data _temp_&amp;amp;var; set source;
if abc&amp;gt;0;
run;
%mend;

%check (var=abc);
%check (var=xyz);
%check (var=var1);
%check (var=varx);&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 30 Jan 2018 22:25:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/run-1-macro-multiple-time/m-p/432544#M107145</guid>
      <dc:creator>hhchenfx</dc:creator>
      <dc:date>2018-01-30T22:25:22Z</dc:date>
    </item>
    <item>
      <title>Re: run 1 macro multiple time</title>
      <link>https://communities.sas.com/t5/SAS-Programming/run-1-macro-multiple-time/m-p/432548#M107146</link>
      <description>&lt;P&gt;Look at CALL EXECUTE.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/********************************************************************
Example : Call macro using parameters from data set
********************************************************************/

proc sort data=sashelp.class out=class;
by age sex;
run;

%macro summary(age=, sex=);

proc print data=sashelp.class;
	where age=&amp;amp;age and sex="&amp;amp;sex";
run;

%mend;

data sample;
set class;
by age sex;

if last.sex;
string =
    catt('%summary(age=', age, ',sex=', sex, ');');
put string;
run;


data _null_;
set sample;
call execute(string);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 30 Jan 2018 22:31:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/run-1-macro-multiple-time/m-p/432548#M107146</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-01-30T22:31:28Z</dc:date>
    </item>
    <item>
      <title>Re: run 1 macro multiple time</title>
      <link>https://communities.sas.com/t5/SAS-Programming/run-1-macro-multiple-time/m-p/432549#M107147</link>
      <description>&lt;P&gt;Look at CALL EXECUTE.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/********************************************************************
Example : Call macro using parameters from data set
********************************************************************/

proc sort data=sashelp.class out=class;
by age sex;
run;

%macro summary(age=, sex=);

proc print data=sashelp.class;
	where age=&amp;amp;age and sex="&amp;amp;sex";
run;

%mend;

data sample;
set class;
by age sex;

if last.sex;
string =
    catt('%summary(age=', age, ',sex=', sex, ');');
put string;
run;


data _null_;
set sample;
call execute(string);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 30 Jan 2018 22:31:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/run-1-macro-multiple-time/m-p/432549#M107147</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-01-30T22:31:29Z</dc:date>
    </item>
    <item>
      <title>Re: run 1 macro multiple time</title>
      <link>https://communities.sas.com/t5/SAS-Programming/run-1-macro-multiple-time/m-p/432553#M107148</link>
      <description>&lt;P&gt;I agree with&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt;, but don't see why you'd even need a macro. I'd do something like the following:&lt;/P&gt;
&lt;PRE&gt;data source; 
input abc xyz var1 varx;
datalines;
1 0 0 0
0 2 0 1
1 1 1 2
;run;

data name; 
input  name $;
datalines;
abc
xyz
var1
varx
;run;

data _null_;
  set name;
  length forexec $80;
  forexec=catt('data _temp_',name,';set source; if');
  call execute(forexec);
  forexec=catt(name,'&amp;gt;0;run;');
  call execute(forexec);
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Jan 2018 22:38:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/run-1-macro-multiple-time/m-p/432553#M107148</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2018-01-30T22:38:59Z</dc:date>
    </item>
  </channel>
</rss>

