<?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 Macros in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458386#M70175</link>
    <description>&lt;P&gt;Need help fixing this code&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro random_number(seed,random_number);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; /**********************************************************************&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ****This macro uses seed to produce a random number between 0 and 1****&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ****The random number will be in a macro variable named in&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ****&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ****the argument random_number.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ****&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; **********************************************************************/&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; data _null_;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; random_number = ranuni(&amp;amp;seed);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; call symput('&amp;amp;random_number', strip(random_number));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; stop;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %put The random number is &amp;amp;random_number;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %mend;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %random_number(12345677,my_rand);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %put The random number is &amp;amp;&amp;amp;&amp;amp;my_rand;&lt;/P&gt;</description>
    <pubDate>Sat, 28 Apr 2018 19:16:45 GMT</pubDate>
    <dc:creator>Meghana3</dc:creator>
    <dc:date>2018-04-28T19:16:45Z</dc:date>
    <item>
      <title>Macros</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458386#M70175</link>
      <description>&lt;P&gt;Need help fixing this code&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro random_number(seed,random_number);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; /**********************************************************************&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ****This macro uses seed to produce a random number between 0 and 1****&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ****The random number will be in a macro variable named in&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ****&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ****the argument random_number.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ****&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; **********************************************************************/&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; data _null_;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; random_number = ranuni(&amp;amp;seed);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; call symput('&amp;amp;random_number', strip(random_number));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; stop;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %put The random number is &amp;amp;random_number;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %mend;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %random_number(12345677,my_rand);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %put The random number is &amp;amp;&amp;amp;&amp;amp;my_rand;&lt;/P&gt;</description>
      <pubDate>Sat, 28 Apr 2018 19:16:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458386#M70175</guid>
      <dc:creator>Meghana3</dc:creator>
      <dc:date>2018-04-28T19:16:45Z</dc:date>
    </item>
    <item>
      <title>Re: Macros</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458387#M70176</link>
      <description>&lt;P&gt;instead of saying fix this code, if you can write/mention the issue/problem then someone can easily fix it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;Kiran&lt;/P&gt;</description>
      <pubDate>Sat, 28 Apr 2018 19:27:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458387#M70176</guid>
      <dc:creator>kiranv_</dc:creator>
      <dc:date>2018-04-28T19:27:18Z</dc:date>
    </item>
    <item>
      <title>Re: Macros</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458391#M70179</link>
      <description>&lt;P&gt;Macro variables only resolve in double quotes, not single quotes, and you don't need multiple &amp;amp; in this usage. You also can't have a macro variable named as a numeric so that would be problematic, CALL&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;The first argument to CALL SYMPUT should be the macro variable name, which cannot be the same as the value in this case.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And you should use CALL SYMPUTX instead as well.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That's my guess at your issue, you didn't really say what's wrong and I didn't run your code either.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/207243"&gt;@Meghana3&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;Need help fixing this code&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%macro random_number(seed,random_number);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; /**********************************************************************&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ****This macro uses seed to produce a random number between 0 and 1****&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ****The random number will be in a macro variable named in&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ****&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ****the argument random_number.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ****&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; **********************************************************************/&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; data _null_;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; random_number = ranuni(&amp;amp;seed);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; call symput('&amp;amp;random_number', strip(random_number));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; stop;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %put The random number is &amp;amp;random_number;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %mend;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %random_number(12345677,my_rand);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; %put The random number is &amp;amp;&amp;amp;&amp;amp;my_rand;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 28 Apr 2018 19:32:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458391#M70179</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-04-28T19:32:46Z</dc:date>
    </item>
    <item>
      <title>Re: Macros</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458392#M70180</link>
      <description>&lt;P&gt;I think that the following does what you want:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro random_number(seed,random_number);
     /**********************************************************************
     ****This macro uses seed to produce a random number between 0 and 1****
     ****The random number will be in a macro variable named in         ****
     ****the argument random_number.                                    ****
     **********************************************************************/

     data _null_;
     random_number = ranuni(&amp;amp;seed);
     call symputx("&amp;amp;random_number.", random_number, 'G');
     stop;
     run;

     %mend;

%random_number(12345677,my_rand);
%put The random number is &amp;amp;my_rand;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 28 Apr 2018 19:47:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458392#M70180</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2018-04-28T19:47:15Z</dc:date>
    </item>
    <item>
      <title>Re: Macros</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458395#M70181</link>
      <description>&lt;P&gt;You could use the %SYSFUNC() macro function and create a "function style" macro instead.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro random_number2(seed);
%local value;
%let value=%sysfunc(ranuni(&amp;amp;seed),best32.);
&amp;amp;value.
%mend;

%let my_rand=%random_number2(12345677);
%put The random number is &amp;amp;my_rand;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 28 Apr 2018 20:05:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458395#M70181</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2018-04-28T20:05:07Z</dc:date>
    </item>
    <item>
      <title>Re: Macros</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458400#M70182</link>
      <description>&lt;P&gt;Regardless of which style macro you choose, do realize that using the ranuni function via a macro will ALWAYS return the first number in that seed .. i.e., NOT a random number.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;e.g., run the following code and compare the output files (i.e., dontwant and want):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro random_number2(seed);
  %local value;
  %let value=%sysfunc(ranuni(&amp;amp;seed),best32.);
  &amp;amp;value.
%mend;

data dontwant;
  do i=1 to 100;
    x=%random_number2(0);
    output;
  end;
run;

data want;
  do i=1 to 100;
    x=ranuni(0);
    output;
  end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 28 Apr 2018 21:24:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Macros/m-p/458400#M70182</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2018-04-28T21:24:45Z</dc:date>
    </item>
  </channel>
</rss>

