<?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: How to inherit the value from previous value in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-inherit-the-value-from-previous-value/m-p/355306#M83218</link>
    <description>&lt;P&gt;You should just be able to use a retained variable.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
  set have;
  hold = coalescec(group,hold);
  group = coalescec(group,hold);
  retain hold;
  drop hold;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Unfortunately SAS sees the first reference to HOLD as being the reference inside the function call instead of the result of assignment statement and defaults HOLD to numeric. &amp;nbsp;So you need to add a LENGTH statement to define HOLD.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or you could use this trick to make a copy of GROUP with the name of HOLD. That way you do not need to know the length of GROUP in advance. &amp;nbsp;It will also mark the variable as retained since it is coming from a dataset, so the RETAIN statement is not needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
   set have have (obs=0 rename=(group=hold));
   hold = coalescec(group,hold);
   group = coalescec(group,hold);
   drop hold;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 02 May 2017 16:36:28 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2017-05-02T16:36:28Z</dc:date>
    <item>
      <title>How to inherit the value from previous value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-inherit-the-value-from-previous-value/m-p/355269#M83212</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I wonder if someone could help me? I try to make a table which inherits the group&amp;nbsp;information from previous value. Thank you.&lt;/P&gt;&lt;P&gt;Input:&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;group&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;id&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;group1&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;1&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;2&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;3&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;group2&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;4&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;group3&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;6&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ouput:&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;group&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;id&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;group1&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;1&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;group2&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;2&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;group3&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;3&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;group2&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;4&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;group3&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;group3&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;6&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Tue, 02 May 2017 14:45:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-inherit-the-value-from-previous-value/m-p/355269#M83212</guid>
      <dc:creator>lionking19063</dc:creator>
      <dc:date>2017-05-02T14:45:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to inherit the value from previous value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-inherit-the-value-from-previous-value/m-p/355276#M83213</link>
      <description>&lt;P&gt;Either I don't understand or your example wasn't right. Are you trying to do the following:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data have;
  infile cards dlm=',' truncover;
  input group $ id;
  cards;
group1,1
 ,2
 ,3
group2,4
 ,5
group3,6
;

proc sort data=have;
  by descending id;
run;

data want (drop=hold);
  set have;
  retain hold;
  if not missing(group) then hold=group;
  else group=hold;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 May 2017 14:59:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-inherit-the-value-from-previous-value/m-p/355276#M83213</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-05-02T14:59:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to inherit the value from previous value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-inherit-the-value-from-previous-value/m-p/355282#M83214</link>
      <description>&lt;P&gt;Thank you so much. It worked.&lt;/P&gt;</description>
      <pubDate>Tue, 02 May 2017 15:21:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-inherit-the-value-from-previous-value/m-p/355282#M83214</guid>
      <dc:creator>lionking19063</dc:creator>
      <dc:date>2017-05-02T15:21:26Z</dc:date>
    </item>
    <item>
      <title>Re: How to inherit the value from previous value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-inherit-the-value-from-previous-value/m-p/355306#M83218</link>
      <description>&lt;P&gt;You should just be able to use a retained variable.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
  set have;
  hold = coalescec(group,hold);
  group = coalescec(group,hold);
  retain hold;
  drop hold;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Unfortunately SAS sees the first reference to HOLD as being the reference inside the function call instead of the result of assignment statement and defaults HOLD to numeric. &amp;nbsp;So you need to add a LENGTH statement to define HOLD.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or you could use this trick to make a copy of GROUP with the name of HOLD. That way you do not need to know the length of GROUP in advance. &amp;nbsp;It will also mark the variable as retained since it is coming from a dataset, so the RETAIN statement is not needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
   set have have (obs=0 rename=(group=hold));
   hold = coalescec(group,hold);
   group = coalescec(group,hold);
   drop hold;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 May 2017 16:36:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-inherit-the-value-from-previous-value/m-p/355306#M83218</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-05-02T16:36:28Z</dc:date>
    </item>
  </channel>
</rss>

