<?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: Problem with incrementation of a macro variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255797#M48907</link>
    <description>&lt;P&gt;So, i m french so it's not very easy to be clear but i m going to try to show you my reasoning&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a SAS table with 3 variables : STATE_BEFORE / STATE_AFTER / DATE&lt;/P&gt;&lt;P&gt;this data is a liste of customers number who can change at some dates&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For exemple :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;STATE_BEFORE&amp;nbsp;&amp;nbsp; STATE_AFTER&amp;nbsp; DATE&lt;/P&gt;&lt;P&gt;100&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; 200&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;01/01&lt;/P&gt;&lt;P&gt;300&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; 400&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; 01/01&lt;/P&gt;&lt;P&gt;200&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; 600&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;01/02&lt;/P&gt;&lt;P&gt;600&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;800&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; 01/03&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As you can see, at the end, the &amp;nbsp; customer 300 is now known as customer 400, and the 100 is known as 800&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My goal is to create a table like that:&lt;/P&gt;&lt;P&gt;STATE_BEFORE&amp;nbsp;&amp;nbsp; STATE_AFTER&amp;nbsp;&lt;/P&gt;&lt;P&gt;100&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; 800&lt;/P&gt;&lt;P&gt;300&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; 400&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, how i thought i could do that :&lt;/P&gt;&lt;P&gt;1) i keep the numbers who are and colum "STATE_AFTER" and "STATE_BEFORE"&amp;nbsp;&amp;nbsp;==&amp;gt; in my example, we have the 200 and the 600&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for information, at the beginning i have a table with 360 000 lines, and when i keep only the ones of step 1), i have a new table with 35 000 lines.&lt;/P&gt;&lt;P&gt;this&amp;nbsp;table has the colums ""STATE_AFTER"" and "ROWCOL"&lt;/P&gt;&lt;P&gt;the ROWCOL is the line number in my first table with the 360 000 lines&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2) i create a mv for each of&amp;nbsp;this 35 000 numbers, so in my example we have :&lt;/P&gt;&lt;P&gt;mv1=200&lt;/P&gt;&lt;P&gt;mv2=600&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3) for each mv, i read the first table, the one with 360 000 lines, and when i found the value of my MV in the column ""STATE_BEFORE"&amp;nbsp;, i replace the value of my MV by the value of the column "STATE_AFTER"&amp;nbsp;&lt;/P&gt;&lt;P&gt;Exemple :&lt;/P&gt;&lt;P&gt;mv1=200&lt;/P&gt;&lt;P&gt;i see it on line 3 in the column ""STATE_BEFORE"&amp;nbsp;, so its value become 600.&lt;/P&gt;&lt;P&gt;i continue to read the table, and on the line 4, become will become 800&lt;/P&gt;&lt;P&gt;so at the end, mv1=800&lt;/P&gt;&lt;P&gt;and of course we also have mv2=800.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4)now, and its here that i have a pb with my program, i work with my table who has 35 000 lignes&lt;/P&gt;&lt;P&gt;its the same table than at the step2, so i know that mv1 is value for the line&lt;/P&gt;&lt;P&gt;with the code i showed you, i create a new variable that contains the new value of the MV&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;5) last step, i join the 2 tables withe the colum "ROWNO" and at the end i have what i wanted&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;is it clear :-)?&lt;/P&gt;</description>
    <pubDate>Thu, 10 Mar 2016 14:42:51 GMT</pubDate>
    <dc:creator>kykyn</dc:creator>
    <dc:date>2016-03-10T14:42:51Z</dc:date>
    <item>
      <title>Problem with incrementation of a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255775#M48898</link>
      <description>&lt;DIV class="tw-swapa"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="_Ejb"&gt;&lt;DIV&gt;&lt;DIV class="tw-ta-container tw-nfl"&gt;&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;I come to you for a problem that I am sure is stupid to solve, but I blocked it for a while so I want good external advice .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;1) I created 10 macro variables (&amp;amp;ma_mv_i) , with i going from 1 to 10 .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;2) I want to create a column in my SAS table with the idea that the line “n” will be given the value of the macro variable “&amp;amp;ma_mv_n”&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i tried this :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%let i&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;;&lt;BR /&gt;&lt;SPAN&gt;data&lt;/SPAN&gt;&amp;nbsp; matable;&lt;BR /&gt;&lt;SPAN&gt;set&lt;/SPAN&gt;&amp;nbsp; masource;&lt;BR /&gt;format new_var &lt;SPAN&gt;11&lt;/SPAN&gt;.;&lt;BR /&gt;&amp;nbsp; %let i &lt;SPAN&gt;=&lt;/SPAN&gt; %EVAL&lt;SPAN class="br0"&gt;(&lt;/SPAN&gt;&amp;amp;i+&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN class="br0"&gt;)&lt;/SPAN&gt;;&lt;BR /&gt;&amp;nbsp; new_var &lt;SPAN&gt;=&lt;/SPAN&gt; &amp;amp;&amp;amp;ma_mv_&amp;amp;i;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;==&amp;gt; and i don't understand why, but "i"&amp;nbsp;&lt;SPAN&gt;does not increment. Indeed, at the end of the program its value is 2, while i thought it should be 10..&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if you have an idea to resolve it should be great to me &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Good day and thank you in advance&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 10 Mar 2016 13:33:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255775#M48898</guid>
      <dc:creator>kykyn</dc:creator>
      <dc:date>2016-03-10T13:33:54Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with incrementation of a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255776#M48899</link>
      <description>&lt;P&gt;This is a job for SYMGET.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let mv1=One;
%let mv2=Two;

data macs;
   set sashelp.class(obs=2);
   length mv $8;
   mv = symget(cats('MV',_n_));
   run;
proc print;
   run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;IMG src="https://communities.sas.com/t5/image/serverpage/image-id/2274i15A83D104F371FC2/image-size/original?v=mpbl-1&amp;amp;px=-1" border="0" alt="Capture.PNG" title="Capture.PNG" /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2016 13:51:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255776#M48899</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2016-03-10T13:51:28Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with incrementation of a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255779#M48900</link>
      <description>&lt;P&gt;You fell into the common trap of assuming that the macro language in SAS is intended to do &lt;STRONG&gt;&lt;EM&gt;something&lt;/EM&gt;&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Instead it is intended to generate program text that will then do &lt;STRONG&gt;&lt;EM&gt;something&lt;/EM&gt;&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your next misconception is about the time at which macro statements are resolved vs the time when data is handled in a data step.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Let's go through your code stepwise:&lt;/P&gt;
&lt;PRE&gt;%let i=0;&lt;/PRE&gt;
&lt;P&gt;Now the macro variable i is set to zero, no program text was generated.&lt;/P&gt;
&lt;P&gt;The SAS interpreter then loads the following into its input buffer:&lt;/P&gt;
&lt;PRE&gt;data  matable;
set  masource;
format new_var 11.;&lt;/PRE&gt;
&lt;P&gt;for later compilation&lt;/P&gt;
&lt;P&gt;now it encounters a macro character and invokes the macro engine:&lt;/P&gt;
&lt;PRE&gt;%let i = %EVAL(&amp;amp;i+1);&lt;/PRE&gt;
&lt;P&gt;Now, the macro variable i has been set to 1, no program text was generated. The macro engine hands back to the main SAS interpreter.&lt;/P&gt;
&lt;P&gt;The main interpreter encounters&lt;/P&gt;
&lt;PRE&gt;new_var = &amp;amp;&amp;amp;ma_mv_&amp;amp;i;&lt;/PRE&gt;
&lt;P&gt;and once again invokes the macro engine to resolve&lt;/P&gt;
&lt;PRE&gt;&amp;amp;&amp;amp;ma_mv_&amp;amp;i&lt;/PRE&gt;
&lt;P&gt;After macro resolving, &amp;amp;&amp;amp;ma_mv_&amp;amp;i is replaced first with &amp;amp;ma_mv_1 and then with the contents of macro variable ma_mv_1; to make it easier, assume that &amp;amp;ma_mv_1 contained the string 1000.&lt;/P&gt;
&lt;P&gt;so, after macro processing, this&lt;/P&gt;
&lt;PRE&gt;new_var = 1000;&lt;/PRE&gt;
&lt;P&gt;is buffered for compilation.&lt;/P&gt;
&lt;P&gt;Now,&lt;/P&gt;
&lt;PRE&gt;run;&lt;/PRE&gt;
&lt;P&gt;is read and the data step enters compilation phase in this form:&lt;/P&gt;
&lt;PRE&gt;data  matable;
set  masource;
format new_var 11.;
  new_var = 1000;
run;&lt;/PRE&gt;
&lt;P&gt;If this is syntactically correct, the data step will start execution.&lt;/P&gt;
&lt;P&gt;As you see, nothing that has to do with macros is present when the data step executes.&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2016 14:05:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255779#M48900</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-03-10T14:05:41Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with incrementation of a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255781#M48902</link>
      <description>&lt;P&gt;oh yes of course SYMGET!!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot for your answer, i really didn't to try that!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and a big thanks also to Kurt for his explication&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2016 14:08:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255781#M48902</guid>
      <dc:creator>kykyn</dc:creator>
      <dc:date>2016-03-10T14:08:21Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with incrementation of a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255783#M48903</link>
      <description>&lt;P&gt;to your opinion, is it possible to do the SYMGET function with 35 000 mv?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i ask that because the soluce on my program and it's very very long to execute &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2016 14:15:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255783#M48903</guid>
      <dc:creator>kykyn</dc:creator>
      <dc:date>2016-03-10T14:15:06Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with incrementation of a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255787#M48904</link>
      <description>&lt;P&gt;Why don't you put your 35000 values into a dataset and merge that into your existing dataset?&lt;/P&gt;
&lt;P&gt;Or read the 35000 values from a dataset into a hash object if you need some fancier kind of assignment mechanism?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What you try to do sounds much more like a data operation, which should be done in a data step or proc sql; macro is for dynamically creating program code where such is needed.&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2016 14:20:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255787#M48904</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2016-03-10T14:20:24Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with incrementation of a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255788#M48905</link>
      <description>&lt;P&gt;You have 35,000 macro variables? &amp;nbsp; You don't want to do it that way.&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2016 14:20:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255788#M48905</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2016-03-10T14:20:49Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with incrementation of a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255792#M48906</link>
      <description>&lt;P&gt;Could you possibly store your 35,000 macro variables in a different format?&amp;nbsp; To illustrate, suppose you had a SAS data set called MA_MV that contained 35,000 observations and just a single variable:&amp;nbsp; MA_MV_value.&amp;nbsp; You could then code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set MA_MV;&lt;/P&gt;
&lt;P&gt;set ma_source;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You wouldn't need to create NEW_VAR ... it is already in the data using the variable name MA_MV_value.&amp;nbsp; Now this DATA step would halt as soon as one of the two data sets ran out of observations so you would have to be sure&amp;nbsp; you have the right number of observations&amp;nbsp; in both data sets.&amp;nbsp; But it's a simple solution (if it is, in fact, a solution for what you need).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Good luck.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2016 14:26:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255792#M48906</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-03-10T14:26:42Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with incrementation of a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255797#M48907</link>
      <description>&lt;P&gt;So, i m french so it's not very easy to be clear but i m going to try to show you my reasoning&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a SAS table with 3 variables : STATE_BEFORE / STATE_AFTER / DATE&lt;/P&gt;&lt;P&gt;this data is a liste of customers number who can change at some dates&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For exemple :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;STATE_BEFORE&amp;nbsp;&amp;nbsp; STATE_AFTER&amp;nbsp; DATE&lt;/P&gt;&lt;P&gt;100&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; 200&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;01/01&lt;/P&gt;&lt;P&gt;300&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; 400&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; 01/01&lt;/P&gt;&lt;P&gt;200&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; 600&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;01/02&lt;/P&gt;&lt;P&gt;600&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;800&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; 01/03&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As you can see, at the end, the &amp;nbsp; customer 300 is now known as customer 400, and the 100 is known as 800&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My goal is to create a table like that:&lt;/P&gt;&lt;P&gt;STATE_BEFORE&amp;nbsp;&amp;nbsp; STATE_AFTER&amp;nbsp;&lt;/P&gt;&lt;P&gt;100&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; 800&lt;/P&gt;&lt;P&gt;300&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; 400&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, how i thought i could do that :&lt;/P&gt;&lt;P&gt;1) i keep the numbers who are and colum "STATE_AFTER" and "STATE_BEFORE"&amp;nbsp;&amp;nbsp;==&amp;gt; in my example, we have the 200 and the 600&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for information, at the beginning i have a table with 360 000 lines, and when i keep only the ones of step 1), i have a new table with 35 000 lines.&lt;/P&gt;&lt;P&gt;this&amp;nbsp;table has the colums ""STATE_AFTER"" and "ROWCOL"&lt;/P&gt;&lt;P&gt;the ROWCOL is the line number in my first table with the 360 000 lines&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2) i create a mv for each of&amp;nbsp;this 35 000 numbers, so in my example we have :&lt;/P&gt;&lt;P&gt;mv1=200&lt;/P&gt;&lt;P&gt;mv2=600&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3) for each mv, i read the first table, the one with 360 000 lines, and when i found the value of my MV in the column ""STATE_BEFORE"&amp;nbsp;, i replace the value of my MV by the value of the column "STATE_AFTER"&amp;nbsp;&lt;/P&gt;&lt;P&gt;Exemple :&lt;/P&gt;&lt;P&gt;mv1=200&lt;/P&gt;&lt;P&gt;i see it on line 3 in the column ""STATE_BEFORE"&amp;nbsp;, so its value become 600.&lt;/P&gt;&lt;P&gt;i continue to read the table, and on the line 4, become will become 800&lt;/P&gt;&lt;P&gt;so at the end, mv1=800&lt;/P&gt;&lt;P&gt;and of course we also have mv2=800.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4)now, and its here that i have a pb with my program, i work with my table who has 35 000 lignes&lt;/P&gt;&lt;P&gt;its the same table than at the step2, so i know that mv1 is value for the line&lt;/P&gt;&lt;P&gt;with the code i showed you, i create a new variable that contains the new value of the MV&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;5) last step, i join the 2 tables withe the colum "ROWNO" and at the end i have what i wanted&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;is it clear :-)?&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2016 14:42:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255797#M48907</guid>
      <dc:creator>kykyn</dc:creator>
      <dc:date>2016-03-10T14:42:51Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with incrementation of a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255865#M48934</link>
      <description>&lt;P&gt;Are the values in State_before or State_after &lt;STRONG&gt;ever&lt;/STRONG&gt; duplicated within that variable?&lt;/P&gt;
&lt;P&gt;For example is this&amp;nbsp; possible?&lt;/P&gt;
&lt;P&gt;STATE_BEFORE&amp;nbsp;&amp;nbsp; STATE_AFTER&amp;nbsp; DATE&lt;/P&gt;
&lt;P&gt;100&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; 200&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;01/01&lt;/P&gt;
&lt;P&gt;300&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; 400&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; 01/01&lt;/P&gt;
&lt;P&gt;200&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; 600&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;01/02&lt;/P&gt;
&lt;P&gt;600&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;800&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; 01/03&lt;/P&gt;
&lt;P&gt;300&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;500&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; 01/04&lt;/P&gt;
&lt;P&gt;900&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;400&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; 01/05&lt;/P&gt;</description>
      <pubDate>Thu, 10 Mar 2016 17:36:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255865#M48934</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-03-10T17:36:58Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with incrementation of a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255951#M48970</link>
      <description>To answer to balardw :&lt;BR /&gt;It s possible for state after but not for state before</description>
      <pubDate>Thu, 10 Mar 2016 21:51:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Problem-with-incrementation-of-a-macro-variable/m-p/255951#M48970</guid>
      <dc:creator>kykyn</dc:creator>
      <dc:date>2016-03-10T21:51:45Z</dc:date>
    </item>
  </channel>
</rss>

