<?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 populate a variable wiìth number if a condition is verified in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953973#M372631</link>
    <description>&lt;P&gt;Hi to all,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I need you another time...&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the case a variable is not populate i need to put a number that is the maxmum of the variable +1. I try with this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
PROC SORT DATA= &amp;amp;nome_tab6.&amp;amp;load_date_g._3;
BY  descending TBU_NUMREK ;
DATA &amp;amp;nome_tab6.&amp;amp;load_date_g._4;
SET &amp;amp;nome_tab6.&amp;amp;load_date_g._3;
format c bestd5.;
RETAIN C;
c=first.TBU_NUMREK;
IF NOT MISSING(TBU_NUMREK) THEN TBU_NUMREK=TBU_NUMREK;
ELSE TBU_NUMREK=C+1;

RUN;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;TABLE border="1" width="99.91181657848324%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;TBU_5CODUF&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;TBU_NUMREK&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;00845&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7681&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;06064&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7682&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;06084&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7683&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;00687&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7684&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08534&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7685&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08535&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7686&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08540&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7687&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08545&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;??????&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08550&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08555&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08560&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08565&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08570&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08575&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08580&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08585&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08590&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
    <pubDate>Wed, 18 Dec 2024 12:21:51 GMT</pubDate>
    <dc:creator>Tecla1</dc:creator>
    <dc:date>2024-12-18T12:21:51Z</dc:date>
    <item>
      <title>populate a variable wiìth number if a condition is verified</title>
      <link>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953973#M372631</link>
      <description>&lt;P&gt;Hi to all,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I need you another time...&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the case a variable is not populate i need to put a number that is the maxmum of the variable +1. I try with this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
PROC SORT DATA= &amp;amp;nome_tab6.&amp;amp;load_date_g._3;
BY  descending TBU_NUMREK ;
DATA &amp;amp;nome_tab6.&amp;amp;load_date_g._4;
SET &amp;amp;nome_tab6.&amp;amp;load_date_g._3;
format c bestd5.;
RETAIN C;
c=first.TBU_NUMREK;
IF NOT MISSING(TBU_NUMREK) THEN TBU_NUMREK=TBU_NUMREK;
ELSE TBU_NUMREK=C+1;

RUN;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;TABLE border="1" width="99.91181657848324%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;TBU_5CODUF&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;TBU_NUMREK&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;00845&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7681&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;06064&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7682&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;06084&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7683&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;00687&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7684&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08534&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7685&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08535&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7686&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08540&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;7687&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08545&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;??????&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08550&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08555&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08560&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08565&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08570&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08575&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08580&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08585&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="49.11816578483245%"&gt;08590&lt;/TD&gt;
&lt;TD width="50.79365079365079%"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Wed, 18 Dec 2024 12:21:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953973#M372631</guid>
      <dc:creator>Tecla1</dc:creator>
      <dc:date>2024-12-18T12:21:51Z</dc:date>
    </item>
    <item>
      <title>Re: populate a variable wiìth number if a condition is verified</title>
      <link>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953976#M372633</link>
      <description>&lt;P&gt;There are some things wrong with your code - for one thing, you need a BY statement in your &lt;STRONG&gt;data&lt;/STRONG&gt; step if you're going to use things like first.&amp;lt;variable&amp;gt; or last.&amp;lt;variable&amp;gt; -- in this case:&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;BY descending NUMREK;&lt;/PRE&gt;
&lt;P&gt;Secondly, the way you're defining C is just going to give you either a 1 or 0 (first.numrek is true or first.numrek is false).&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am not totally sure what you're trying to do, but here's how I would suggest you modify your DATA step (in this case, you don't actually need the BY statement):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
set have;
retain C;
if C=. then C=NUMREK;  * populate C with first non-missing NUMREK (i.e., largest available), then not again ;
NUMREK=coalesce(NUMREK, C+1);
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;That does what you *asked* for, but I suspect that's not really what you want.&amp;nbsp; For one thing, by ordering as DESCENDING, the values of NUMREK are getting smaller and smaller as you go through the data, so I'm not really sure what you mean by "the maximum of the variable + 1".&amp;nbsp; The maximum value of NUMREK is the first non-missing value in your sorted dataset.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I imagine what you actually want is something like this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have; by numrek; run;

data have;
set have;
retain C;
if numrek &amp;gt; . then c=numrek;
else numrek=c+1;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This populates a missing numrek with the largest value &lt;EM&gt;seen so far&lt;/EM&gt; + 1.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Dec 2024 13:04:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953976#M372633</guid>
      <dc:creator>quickbluefish</dc:creator>
      <dc:date>2024-12-18T13:04:37Z</dc:date>
    </item>
    <item>
      <title>Re: populate a variable wiìth number if a condition is verified</title>
      <link>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953977#M372634</link>
      <description>&lt;P&gt;Please provide example data as working SAS data step code (&lt;A href="https://blogs.sas.com/content/sastraining/2016/03/11/jedi-sas-tricks-data-to-data-step-macro/" target="_self"&gt;examples and instructions&lt;/A&gt;) and not as screen captures, not as Excel files, not as any other file attachment, not as copy/paste from Excel.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Dec 2024 13:04:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953977#M372634</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2024-12-18T13:04:02Z</dc:date>
    </item>
    <item>
      <title>Re: populate a variable wiìth number if a condition is verified</title>
      <link>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953978#M372635</link>
      <description>&lt;P&gt;If you want the maximum then why are you replacing it with a value that can only be 1 or 2? (or in your case missing since you forgot a BY statement).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The FIRST. flags created when using a BY statement in a data step are boolean flags.&amp;nbsp; They will either be TRUE (represented by value 1 in this case) or FALSE (represented by value of 0).&amp;nbsp; You want to remember the actual value, not the true/false flag variable's value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data &amp;amp;nome_tab6.&amp;amp;load_date_g._4;
  set &amp;amp;nome_tab6.&amp;amp;load_date_g._3;
  if _n_=1 then max_value=TBU_NUMREK;
  if missing(TBU_NUMREK) then do;
     max_value+1;
     TBU_NUMREK=max_value;
  end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Note the use of the SUM STATEMENT&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;max_value+1;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;implicitly sets the variable being accumulated into, MAX_VALUE, as retained.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note there was no reason to attach the BEST5. format to the variable C.&amp;nbsp; Why force SAS to display the values with only 5 characters?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Dec 2024 13:11:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953978#M372635</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-12-18T13:11:48Z</dc:date>
    </item>
    <item>
      <title>Re: populate a variable wiìth number if a condition is verified</title>
      <link>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953980#M372636</link>
      <description>Hi bluefish, many tnks, you are rigth, I was trying more solution but I know what you have explained so well... Now i try your kindly solution ....</description>
      <pubDate>Wed, 18 Dec 2024 13:23:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953980#M372636</guid>
      <dc:creator>Tecla1</dc:creator>
      <dc:date>2024-12-18T13:23:06Z</dc:date>
    </item>
    <item>
      <title>Re: populate a variable wiìth number if a condition is verified</title>
      <link>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953982#M372637</link>
      <description>Hi Tom many tnks for your kindly help!!! after your replay everything seems so simple !!! I tnks all community for the help everityme it give.... have a nice new Year !!!</description>
      <pubDate>Wed, 18 Dec 2024 13:32:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953982#M372637</guid>
      <dc:creator>Tecla1</dc:creator>
      <dc:date>2024-12-18T13:32:06Z</dc:date>
    </item>
    <item>
      <title>Re: populate a variable wiìth number if a condition is verified</title>
      <link>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953983#M372638</link>
      <description>Hi Tom, i need the format but it's non important for the result !! I have a question: why "first." wasn't a good solution? &lt;BR /&gt;Tnks a lot !!</description>
      <pubDate>Wed, 18 Dec 2024 13:34:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953983#M372638</guid>
      <dc:creator>Tecla1</dc:creator>
      <dc:date>2024-12-18T13:34:11Z</dc:date>
    </item>
    <item>
      <title>Re: populate a variable wiìth number if a condition is verified</title>
      <link>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953984#M372639</link>
      <description>Hi Tom, I see well your first replay. Tnks a lot. Tecla</description>
      <pubDate>Wed, 18 Dec 2024 13:41:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953984#M372639</guid>
      <dc:creator>Tecla1</dc:creator>
      <dc:date>2024-12-18T13:41:38Z</dc:date>
    </item>
    <item>
      <title>Re: populate a variable wiìth number if a condition is verified</title>
      <link>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953986#M372640</link>
      <description>&lt;P&gt;For FIRST. to work (or even exist) you need a BY statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Using FIRST. would be useful if you had a grouping variable that you wanted to use to find different maximum values for each group.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Dec 2024 13:50:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/953986#M372640</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-12-18T13:50:42Z</dc:date>
    </item>
    <item>
      <title>Re: populate a variable wiìth number if a condition is verified</title>
      <link>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/954000#M372646</link>
      <description>Tnks</description>
      <pubDate>Wed, 18 Dec 2024 15:14:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/populate-a-variable-wi%C3%ACth-number-if-a-condition-is-verified/m-p/954000#M372646</guid>
      <dc:creator>Tecla1</dc:creator>
      <dc:date>2024-12-18T15:14:46Z</dc:date>
    </item>
  </channel>
</rss>

