<?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: Retaining values for given IDs in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Retaining-values-for-given-IDs/m-p/851823#M336720</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID Value;
datalines;
1  3  
1  3  
1  3  
2  2  
2  3  
2  4  
2  0  
2  0  
3  9  
3  10 
3  10 
3  0  
3  0  
3  0  
3  0  
;

data want;
   set have;
   by ID;
   if Value then _iorc_ = Value;
   if not first.id and Value = 0 then Value = _iorc_;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Result:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;ID Value
1  3
1  3
1  3
2  2
2  3
2  4
2  4
2  4
3  9
3  10
3  10
3  10
3  10
3  10
3  10&lt;/PRE&gt;</description>
    <pubDate>Mon, 02 Jan 2023 13:10:26 GMT</pubDate>
    <dc:creator>PeterClemmensen</dc:creator>
    <dc:date>2023-01-02T13:10:26Z</dc:date>
    <item>
      <title>Retaining values for given IDs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retaining-values-for-given-IDs/m-p/851819#M336716</link>
      <description>&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a large excel sheet with around 100.000 data points of following structure:&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Value&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to extend the last non 0 value for each ID, to replace the 0s. The final table should look like this:&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Value&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does anybody have a suggestions? I have tried with lag function with loops but can not seem to find the right solution.&lt;/P&gt;&lt;P&gt;Thank you for any advice!&lt;/P&gt;</description>
      <pubDate>Mon, 02 Jan 2023 12:17:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retaining-values-for-given-IDs/m-p/851819#M336716</guid>
      <dc:creator>ifb10</dc:creator>
      <dc:date>2023-01-02T12:17:34Z</dc:date>
    </item>
    <item>
      <title>Re: Retaining values for given IDs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retaining-values-for-given-IDs/m-p/851820#M336717</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
    set have;
    by id;
    retain newvalue;
    prev_value=lag(value);
    if first.id or value&amp;gt;0 then newvalue=value;
    if value=0 and not first.id and prev_value^=0 then newvalue=prev_value;
    drop prev_value;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please do us a favor, help us out (which also helps you get quicker and better answers), from now on do not provide example data as screen capture or as file attachments; instead provide data as &lt;A href="https://blogs.sas.com/content/sastraining/2016/03/11/jedi-sas-tricks-data-to-data-step-macro/" target="_self"&gt;working SAS data step code&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Mon, 02 Jan 2023 12:26:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retaining-values-for-given-IDs/m-p/851820#M336717</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2023-01-02T12:26:55Z</dc:date>
    </item>
    <item>
      <title>Re: Retaining values for given IDs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retaining-values-for-given-IDs/m-p/851823#M336720</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID Value;
datalines;
1  3  
1  3  
1  3  
2  2  
2  3  
2  4  
2  0  
2  0  
3  9  
3  10 
3  10 
3  0  
3  0  
3  0  
3  0  
;

data want;
   set have;
   by ID;
   if Value then _iorc_ = Value;
   if not first.id and Value = 0 then Value = _iorc_;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Result:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;ID Value
1  3
1  3
1  3
2  2
2  3
2  4
2  4
2  4
3  9
3  10
3  10
3  10
3  10
3  10
3  10&lt;/PRE&gt;</description>
      <pubDate>Mon, 02 Jan 2023 13:10:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retaining-values-for-given-IDs/m-p/851823#M336720</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2023-01-02T13:10:26Z</dc:date>
    </item>
    <item>
      <title>Re: Retaining values for given IDs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retaining-values-for-given-IDs/m-p/851838#M336725</link>
      <description>&lt;P&gt;Thank you this does the trick. I have been trying to overwrite the original value instead of creating a new one. This is a very simple and effective solution!&lt;/P&gt;</description>
      <pubDate>Mon, 02 Jan 2023 15:26:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retaining-values-for-given-IDs/m-p/851838#M336725</guid>
      <dc:creator>ifb10</dc:creator>
      <dc:date>2023-01-02T15:26:58Z</dc:date>
    </item>
  </channel>
</rss>

