<?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 Re: Using a Loop outside of data step in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920395#M41231</link>
    <description>&lt;P&gt;The syntax for macro do loops:&lt;/P&gt;
&lt;P&gt;%do var=start %to end;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%do i = &amp;amp;start %to &amp;amp;end;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 15 Mar 2024 11:26:41 GMT</pubDate>
    <dc:creator>LinusH</dc:creator>
    <dc:date>2024-03-15T11:26:41Z</dc:date>
    <item>
      <title>Using a Loop outside of data step</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920393#M41230</link>
      <description>&lt;P&gt;Hello forum,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i have problems using loop statements outside of a data step.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have this data step and want to run it several times (e.g. 8 times) :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;data new_data;
      set test;
      first_result = find(number, &amp;amp;start, "i");
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;My variable is &amp;amp;start and i want to define a macro with a range from e.g. 1-8.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried it like below, but it doesn't work:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;%macro test(start=1, end=8)
     %local start end;
     %let start=&amp;amp;start;
     %let end=&amp;amp;end;
     %do &amp;amp;start %to &amp;amp;end;
            data new_data_&amp;amp;start;
                   set test;
                   first_result = find(number, &amp;amp;start, "i");
           run;
          %let start=&amp;amp;start+1;
     %end;
&amp;amp;mend test;
%test(start=1,end=8);

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Thanks for your help in advance.&lt;/P&gt;</description>
      <pubDate>Fri, 15 Mar 2024 11:50:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920393#M41230</guid>
      <dc:creator>MaxiHösi</dc:creator>
      <dc:date>2024-03-15T11:50:35Z</dc:date>
    </item>
    <item>
      <title>Re: Using a Loop outside of data step</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920395#M41231</link>
      <description>&lt;P&gt;The syntax for macro do loops:&lt;/P&gt;
&lt;P&gt;%do var=start %to end;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%do i = &amp;amp;start %to &amp;amp;end;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 15 Mar 2024 11:26:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920395#M41231</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2024-03-15T11:26:41Z</dc:date>
    </item>
    <item>
      <title>Re: Using a Loop outside of data step</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920396#M41232</link>
      <description>Thx, but when i correct it, the code still runs just one time. The error sais "ERROR 180-322: Statement is not valid or it is used out of proper order" and something that the rows and columns couldnt't be found.</description>
      <pubDate>Fri, 15 Mar 2024 11:46:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920396#M41232</guid>
      <dc:creator>MaxiHösi</dc:creator>
      <dc:date>2024-03-15T11:46:31Z</dc:date>
    </item>
    <item>
      <title>Re: Using a Loop outside of data step</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920397#M41233</link>
      <description>&lt;P&gt;Please post the log with&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;options mlogic mprint symbolgen;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 15 Mar 2024 11:59:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920397#M41233</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2024-03-15T11:59:01Z</dc:date>
    </item>
    <item>
      <title>Re: Using a Loop outside of data step</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920409#M41234</link>
      <description>&lt;P&gt;When writing a macro, often it's helpful to start by writing working SAS code with no macro statements.&amp;nbsp; Then after you have that, you can work on writing a macro to generate that code.&amp;nbsp; I know your loop would run 8 times, but if you were going to write two DATA steps without any macro code, what would they look like? Something like:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data new_data_1;
  set test;
  first_result = find(number, "1", "i");
run;

data new_data_2;
  set test;
  first_result = find(number, "2", "i");
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think the above is syntactically correct, but I doubt it's what you want.&amp;nbsp; It would make sense if your goal is to search a character variable named NUMBER, to see if it has a "1" or a "2" in it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Before worrying about writing a macro, can you provide a small amount of example data, ideally a DATA step with the CARDS statement to make work.test? And also provide the DATA step code that is working to make the dataset you want. Also describe big picture / goal (what are you doing? why do you want to make 8 datasets?)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Mar 2024 12:35:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920409#M41234</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2024-03-15T12:35:17Z</dc:date>
    </item>
    <item>
      <title>Re: Using a Loop outside of data step</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920413#M41235</link>
      <description>&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;73&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;options mlogic mprint symbolgen;&lt;/P&gt;&lt;P&gt;74&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;75&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%macro test (start=1, end=8);&lt;/P&gt;&lt;P&gt;76&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%local start end;&lt;/P&gt;&lt;P&gt;77&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%let start=&amp;amp;start;&lt;/P&gt;&lt;P&gt;78&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%let end=&amp;amp;end;&lt;/P&gt;&lt;P&gt;79&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%do i = &amp;amp;start %to &amp;amp;end;&lt;/P&gt;&lt;P&gt;80&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;data new_data_&amp;amp;start.;&lt;/P&gt;&lt;P&gt;81&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;set test;&lt;/P&gt;&lt;P&gt;82&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;first_result = find(number, &amp;amp;start, "i");&lt;/P&gt;&lt;P&gt;83&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;run;&lt;/P&gt;&lt;P&gt;84&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;amp;let start=&amp;amp;start+1;&lt;/P&gt;&lt;P&gt;85&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%end;&lt;/P&gt;&lt;P&gt;86&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%mend test;&lt;/P&gt;&lt;P&gt;87&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%test(start=1, end=8);&lt;/P&gt;&lt;P&gt;MLOGIC(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Ausführung beginnt.&lt;/P&gt;&lt;P&gt;MLOGIC(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Parameter START besitzt Wert 1&lt;/P&gt;&lt;P&gt;MLOGIC(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Parameter END besitzt Wert 8&lt;/P&gt;&lt;P&gt;MLOGIC(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%LOCAL&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;START END&lt;/P&gt;&lt;P&gt;MLOGIC(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%LET (Variablenname ist START)&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Makrovariable START wird in 1 aufgelöst&lt;/P&gt;&lt;P&gt;MLOGIC(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%LET (Variablenname ist END)&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Makrovariable END wird in 8 aufgelöst&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Makrovariable START wird in 1 aufgelöst&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Makrovariable END wird in 8 aufgelöst&lt;/P&gt;&lt;P&gt;MLOGIC(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%DO Schleife startet; Indexvariable I; Startwert 1; Stoppwert 8; By-Wert 1.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;SYMBOLGEN:&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Makrovariable START wird in 1 aufgelöst&lt;/P&gt;&lt;P&gt;MPRINT(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;data new_data_1;&lt;/P&gt;&lt;P&gt;MPRINT(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;set test;&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Makrovariable START wird in 1 aufgelöst&lt;/P&gt;&lt;P&gt;MPRINT(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;first_result = find(number, 1, "i");&lt;/P&gt;&lt;P&gt;MPRINT(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;run;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;11578:63&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;1:2&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;NOTE: Komprimierung für Datei WORK.NEW_DATA_1 deaktiviert, da Komprimierungsoverhead Dateigröße erhöhen würde.&lt;/P&gt;&lt;P&gt;NOTE: There were 100 observations read from the data set WORK.TEST.&lt;/P&gt;&lt;P&gt;NOTE: The data set WORK.NEW_DATA_1 has 100 observations and 3 variables.&lt;/P&gt;&lt;P&gt;NOTE:&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Verwendet wurde: DATA statement - (Gesamtverarbeitungszeit):&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;real time&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;0.01 seconds&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;cpu time&lt;SPAN&gt;&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;/SPAN&gt;0.00 seconds&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;WARNING: Apparent symbolic reference LET not resolved.&lt;/P&gt;&lt;P&gt;180: ZEILE und SPALTE können nicht ermittelt werden.&lt;/P&gt;&lt;P&gt;NOTE: NOSPOOL is on. Rerunning with OPTION SPOOL might allow recovery of the LINE and COLUMN where the error has occurred.&lt;/P&gt;&lt;P&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Makrovariable START wird in 1 aufgelöst&lt;/P&gt;&lt;P&gt;MPRINT(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;amp;let start=1+1;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;MLOGIC(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;%DO Schleife Indexvariable I ist jetzt 2; Schleife wird wiederholt.&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Makrovariable START wird in 1 aufgelöst&lt;/P&gt;&lt;P&gt;MPRINT(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;data new_data_1;&lt;/P&gt;&lt;P&gt;MPRINT(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;set test;&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Makrovariable START wird in 1 aufgelöst&lt;/P&gt;&lt;P&gt;MPRINT(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;first_result = find(number, 1, "i");&lt;/P&gt;&lt;P&gt;MPRINT(TEST):&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;run;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;11583:64&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;1:2&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;NOTE: Komprimierung für Datei WORK.NEW_DATA_1 deaktiviert, da Komprimierungsoverhead Dateigröße erhöhen würde.&lt;/P&gt;&lt;P&gt;NOTE: There were 100 observations read from the data set WORK.TEST.&lt;/P&gt;&lt;P&gt;NOTE: The data set WORK.NEW_DATA_1 has 100 observations and 3 variables.&lt;/P&gt;&lt;P&gt;NOTE:&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Verwendet wurde: DATA statement - (Gesamtverarbeitungszeit):&lt;/P&gt;</description>
      <pubDate>Fri, 15 Mar 2024 12:51:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920413#M41235</guid>
      <dc:creator>MaxiHösi</dc:creator>
      <dc:date>2024-03-15T12:51:06Z</dc:date>
    </item>
    <item>
      <title>Re: Using a Loop outside of data step</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920416#M41236</link>
      <description>&lt;P&gt;&lt;SPAN&gt;If i am going to write two DATA steps without any macro code, it would exactly look like yours. It's exactly what i want. In the test-Data are just numbers and letters. Yet it's just a test project for me.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Mar 2024 13:09:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920416#M41236</guid>
      <dc:creator>MaxiHösi</dc:creator>
      <dc:date>2024-03-15T13:09:14Z</dc:date>
    </item>
    <item>
      <title>Re: Using a Loop outside of data step</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920426#M41237</link>
      <description>&lt;P&gt;The below macro will generate example DATA step code I posted.&amp;nbsp; Still not sure this is what you want.&amp;nbsp; But for a test project, it makes sense to play around with this sort of macro looping.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test ;
  input number $2. ;
  cards ;
00
01
12
;

%macro test(start=1, end=8);
  %local i;
  %do i=&amp;amp;start %to &amp;amp;end;
    data new_data_&amp;amp;i;
      set test;
      first_result = find(number, "&amp;amp;i", "i");
    run;
 %end;
%mend test;

options mprint ;
%test(start=1,end=8)&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 15 Mar 2024 13:27:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920426#M41237</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2024-03-15T13:27:54Z</dc:date>
    </item>
    <item>
      <title>Re: Using a Loop outside of data step</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920461#M41238</link>
      <description>Remove the code in line 84, it's no needed, the %do will augment &amp;amp;I automatically for each loop.&lt;BR /&gt;You now have a working loop.&lt;BR /&gt;Then it looks like you have data type problem, is your variable "number" character or numeric?&lt;BR /&gt;You can also skip the "i" modifier since you are only looking for numbers.&lt;BR /&gt;Also, you need to replace the &amp;amp;start in the function call with &amp;amp;i.</description>
      <pubDate>Fri, 15 Mar 2024 14:21:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920461#M41238</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2024-03-15T14:21:49Z</dc:date>
    </item>
    <item>
      <title>Re: Using a Loop outside of data step</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920464#M41239</link>
      <description>&lt;P&gt;Just a note that when you do this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;    data new_data_&amp;amp;i;
      set test;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Your starting point is always TEST so that your data from the previous iteration does not affect the new iteration. Sometimes that is what you want and sometimes it's not.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Parameters within a macro by definition are local, so defining them as local and re-assigning is redundant&lt;/LI&gt;
&lt;LI&gt;For the FIND function, put the second parameter in quotes as FIND requieres character/string parameters&lt;/LI&gt;
&lt;LI&gt;DO loop needs to be fixed as others have suggested.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro test(start=, end=)
     %do i = &amp;amp;start %to &amp;amp;end;
            data new_data_&amp;amp;i;
                   set test;
                   first_result = find(number, "&amp;amp;i", "i");
           run;
     %end;
%mend test;
%test(start=1,end=8);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/464508"&gt;@MaxiHösi&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello forum,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;i have problems using loop statements outside of a data step.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have this data step and want to run it several times (e.g. 8 times) :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=""&gt;data new_data;
      set test;
      first_result = find(number, &amp;amp;start, "i");
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;My variable is &amp;amp;start and i want to define a macro with a range from e.g. 1-8.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried it like below, but it doesn't work:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=""&gt;%macro test(start=1, end=8)
     %local start end;
     %let start=&amp;amp;start;
     %let end=&amp;amp;end;
     %do &amp;amp;start %to &amp;amp;end;
            data new_data_&amp;amp;start;
                   set test;
                   first_result = find(number, &amp;amp;start, "i");
           run;
          %let start=&amp;amp;start+1;
     %end;
&amp;amp;mend test;
%test(start=1,end=8);

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Thanks for your help in advance.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Mar 2024 14:53:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920464#M41239</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2024-03-15T14:53:05Z</dc:date>
    </item>
    <item>
      <title>Re: Using a Loop outside of data step</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920468#M41240</link>
      <description>&lt;P&gt;Your code was exactly what i want and it works well. Thanks a lot. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Mar 2024 15:04:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Using-a-Loop-outside-of-data-step/m-p/920468#M41240</guid>
      <dc:creator>MaxiHösi</dc:creator>
      <dc:date>2024-03-15T15:04:28Z</dc:date>
    </item>
  </channel>
</rss>

