<?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: Retain Previous Non Empty Value by Group in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Retain-Previous-Non-Empty-Value-by-Group/m-p/800311#M314788</link>
    <description>&lt;P&gt;To do it with just SET, see this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have (rename=(program_id=_p)),
by account_number;
retain program_id;
if first.account_number then program_id = "".
program_id = ifc(_p,_p,program_id);
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Untested, posted from my tablet.&lt;/P&gt;
&lt;P&gt;Adapt the code if program_id is numeric..&lt;/P&gt;</description>
    <pubDate>Sat, 05 Mar 2022 06:01:39 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2022-03-05T06:01:39Z</dc:date>
    <item>
      <title>Retain Previous Non Empty Value by Group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-Previous-Non-Empty-Value-by-Group/m-p/800140#M314718</link>
      <description>&lt;P&gt;An Account once enrolled in a program continues to be enrolled until it gets enrolled in another program&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;HAVE:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Account Number&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Program ID&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;23452397&lt;/TD&gt;&lt;TD&gt;Jan 2021&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;23452397&lt;/TD&gt;&lt;TD&gt;Feb 2021&lt;/TD&gt;&lt;TD&gt;337&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;23452397&lt;/TD&gt;&lt;TD&gt;Mar 2021&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98668953&lt;/TD&gt;&lt;TD&gt;Jan 2021&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98668953&lt;/TD&gt;&lt;TD&gt;Feb 2021&lt;/TD&gt;&lt;TD&gt;10180&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98668953&lt;/TD&gt;&lt;TD&gt;Mar 2021&lt;/TD&gt;&lt;TD&gt;338&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98668953&lt;/TD&gt;&lt;TD&gt;Apr 2021&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;WANT:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Account Number&lt;/TD&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Program ID&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;23452397&lt;/TD&gt;&lt;TD&gt;Jan 2021&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;23452397&lt;/TD&gt;&lt;TD&gt;Feb 2021&lt;/TD&gt;&lt;TD&gt;337&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;23452397&lt;/TD&gt;&lt;TD&gt;Mar 2021&lt;/TD&gt;&lt;TD&gt;337&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98668953&lt;/TD&gt;&lt;TD&gt;Jan 2021&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98668953&lt;/TD&gt;&lt;TD&gt;Feb 2021&lt;/TD&gt;&lt;TD&gt;10180&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98668953&lt;/TD&gt;&lt;TD&gt;Mar 2021&lt;/TD&gt;&lt;TD&gt;338&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98668953&lt;/TD&gt;&lt;TD&gt;Apr 2021&lt;/TD&gt;&lt;TD&gt;338&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Assume the data is already sorted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 04 Mar 2022 13:37:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-Previous-Non-Empty-Value-by-Group/m-p/800140#M314718</guid>
      <dc:creator>hellind</dc:creator>
      <dc:date>2022-03-04T13:37:36Z</dc:date>
    </item>
    <item>
      <title>Re: Retain Previous Non Empty Value by Group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-Previous-Non-Empty-Value-by-Group/m-p/800145#M314720</link>
      <description>&lt;P&gt;The easy way will apply to all variables, not just Program_ID:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
   update have (obs=0) have;
   by Account_Number;
   output;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 04 Mar 2022 13:45:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-Previous-Non-Empty-Value-by-Group/m-p/800145#M314720</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2022-03-04T13:45:19Z</dc:date>
    </item>
    <item>
      <title>Re: Retain Previous Non Empty Value by Group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-Previous-Non-Empty-Value-by-Group/m-p/800310#M314787</link>
      <description>&lt;P&gt;But you can apply it to just selective variables.&amp;nbsp; Say you want to apply it to program_id only, but you have another variable (EXTRA) that you do NOT want to carry forward to overwrite missing values:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  update have (obs=0 ) have (keep=account_number program_id);
  by account_number;
  set have (keep=extra);
  output;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this case, I assume that DATE is never missing, so no special treatment is needed for it.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 05 Mar 2022 05:40:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-Previous-Non-Empty-Value-by-Group/m-p/800310#M314787</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2022-03-05T05:40:28Z</dc:date>
    </item>
    <item>
      <title>Re: Retain Previous Non Empty Value by Group</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Retain-Previous-Non-Empty-Value-by-Group/m-p/800311#M314788</link>
      <description>&lt;P&gt;To do it with just SET, see this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have (rename=(program_id=_p)),
by account_number;
retain program_id;
if first.account_number then program_id = "".
program_id = ifc(_p,_p,program_id);
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Untested, posted from my tablet.&lt;/P&gt;
&lt;P&gt;Adapt the code if program_id is numeric..&lt;/P&gt;</description>
      <pubDate>Sat, 05 Mar 2022 06:01:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Retain-Previous-Non-Empty-Value-by-Group/m-p/800311#M314788</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2022-03-05T06:01:39Z</dc:date>
    </item>
  </channel>
</rss>

