<?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: Fill the gap with missing age in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698877#M213774</link>
    <description>&lt;P&gt;HI&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/260675"&gt;@abdulla&lt;/a&gt;&amp;nbsp; I would recommend learning a set of doctrines called "Dorfmanisms" taught by Guru&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/21262"&gt;@hashman&lt;/a&gt;&amp;nbsp; His disciples like me have the privilege of plagiarizing it &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data have;
infile cards truncover;
input GVKEY $	fyear	EXECID $	AGE;
cards;
002538	2007	02158	56
002538	2008	02158	 
002538	2009	02158	 
002538	2010	02158	 
002538	2011	42441	57
002538	2012	42441	58
002538	2013	42441	59
002538	2014	42439	63
002538	2015	30776	50
002538	2016	30776	51
002554	1993	00222	 
002554	1994	00222	59
002554	1995	00222	60
002554	1996	00222	 
002554	1997	00222	62
002554	1998	00222	 
;

data want;
 _iorc_=.;
 do until(last.execid);
  set have;
  by gvkey execid notsorted;
  if age then _iorc_=age;
  else age=_iorc_;
  output;
  _iorc_+1;
 end;
run;

proc print noobs;run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 14 Nov 2020 15:02:53 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2020-11-14T15:02:53Z</dc:date>
    <item>
      <title>Fill the gap with missing age</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698847#M213754</link>
      <description>&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;GVKEY&lt;/TD&gt;&lt;TD&gt;fyear&lt;/TD&gt;&lt;TD&gt;EXECID&lt;/TD&gt;&lt;TD&gt;AGE&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2007&lt;/TD&gt;&lt;TD&gt;02158&lt;/TD&gt;&lt;TD&gt;56&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2008&lt;/TD&gt;&lt;TD&gt;02158&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;02158&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;02158&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2011&lt;/TD&gt;&lt;TD&gt;42441&lt;/TD&gt;&lt;TD&gt;57&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2012&lt;/TD&gt;&lt;TD&gt;42441&lt;/TD&gt;&lt;TD&gt;58&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2013&lt;/TD&gt;&lt;TD&gt;42441&lt;/TD&gt;&lt;TD&gt;59&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2014&lt;/TD&gt;&lt;TD&gt;42439&lt;/TD&gt;&lt;TD&gt;63&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2015&lt;/TD&gt;&lt;TD&gt;30776&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2016&lt;/TD&gt;&lt;TD&gt;30776&lt;/TD&gt;&lt;TD&gt;51&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1993&lt;/TD&gt;&lt;TD&gt;00222&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1994&lt;/TD&gt;&lt;TD&gt;00222&lt;/TD&gt;&lt;TD&gt;59&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1995&lt;/TD&gt;&lt;TD&gt;00222&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1996&lt;/TD&gt;&lt;TD&gt;00222&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1997&lt;/TD&gt;&lt;TD&gt;00222&lt;/TD&gt;&lt;TD&gt;62&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1998&lt;/TD&gt;&lt;TD&gt;00222&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;I want the following result. It is filling the missing age by execid (based on previously given age)&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;GVKEY&lt;/TD&gt;&lt;TD&gt;fyear&lt;/TD&gt;&lt;TD&gt;EXECID&lt;/TD&gt;&lt;TD&gt;AGE&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2007&lt;/TD&gt;&lt;TD&gt;02158&lt;/TD&gt;&lt;TD&gt;56&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2008&lt;/TD&gt;&lt;TD&gt;02158&lt;/TD&gt;&lt;TD&gt;57&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2009&lt;/TD&gt;&lt;TD&gt;02158&lt;/TD&gt;&lt;TD&gt;58&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2010&lt;/TD&gt;&lt;TD&gt;02158&lt;/TD&gt;&lt;TD&gt;59&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2011&lt;/TD&gt;&lt;TD&gt;42441&lt;/TD&gt;&lt;TD&gt;57&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2012&lt;/TD&gt;&lt;TD&gt;42441&lt;/TD&gt;&lt;TD&gt;58&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2013&lt;/TD&gt;&lt;TD&gt;42441&lt;/TD&gt;&lt;TD&gt;59&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2014&lt;/TD&gt;&lt;TD&gt;42439&lt;/TD&gt;&lt;TD&gt;63&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2015&lt;/TD&gt;&lt;TD&gt;30776&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002538&lt;/TD&gt;&lt;TD&gt;2016&lt;/TD&gt;&lt;TD&gt;30776&lt;/TD&gt;&lt;TD&gt;51&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1993&lt;/TD&gt;&lt;TD&gt;00222&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1994&lt;/TD&gt;&lt;TD&gt;00222&lt;/TD&gt;&lt;TD&gt;59&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1995&lt;/TD&gt;&lt;TD&gt;00222&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1996&lt;/TD&gt;&lt;TD&gt;00222&lt;/TD&gt;&lt;TD&gt;61&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1997&lt;/TD&gt;&lt;TD&gt;00222&lt;/TD&gt;&lt;TD&gt;62&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002554&lt;/TD&gt;&lt;TD&gt;1998&lt;/TD&gt;&lt;TD&gt;00222&lt;/TD&gt;&lt;TD&gt;63&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Sat, 14 Nov 2020 03:26:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698847#M213754</guid>
      <dc:creator>abdulla</dc:creator>
      <dc:date>2020-11-14T03:26:40Z</dc:date>
    </item>
    <item>
      <title>Re: Fill the gap with missing age</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698850#M213756</link>
      <description>How do you know which one is correct? Is it always the assumption that the first record is correct?</description>
      <pubDate>Sat, 14 Nov 2020 03:57:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698850#M213756</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2020-11-14T03:57:12Z</dc:date>
    </item>
    <item>
      <title>Re: Fill the gap with missing age</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698851#M213757</link>
      <description>Yes, first record is correct. But sometimes first record is missing and for that I want to do it by descending fyear</description>
      <pubDate>Sat, 14 Nov 2020 04:11:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698851#M213757</guid>
      <dc:creator>abdulla</dc:creator>
      <dc:date>2020-11-14T04:11:07Z</dc:date>
    </item>
    <item>
      <title>Re: Fill the gap with missing age</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698858#M213763</link>
      <description>&lt;P&gt;As I showed you &lt;A href="https://communities.sas.com/t5/SAS-Programming/Fill-the-cell/m-p/698857/highlight/true#M213762" target="_blank" rel="noopener"&gt;here&lt;/A&gt;, use a double DO loop.&lt;/P&gt;</description>
      <pubDate>Sat, 14 Nov 2020 07:49:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698858#M213763</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-11-14T07:49:23Z</dc:date>
    </item>
    <item>
      <title>Re: Fill the gap with missing age</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698877#M213774</link>
      <description>&lt;P&gt;HI&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/260675"&gt;@abdulla&lt;/a&gt;&amp;nbsp; I would recommend learning a set of doctrines called "Dorfmanisms" taught by Guru&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/21262"&gt;@hashman&lt;/a&gt;&amp;nbsp; His disciples like me have the privilege of plagiarizing it &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data have;
infile cards truncover;
input GVKEY $	fyear	EXECID $	AGE;
cards;
002538	2007	02158	56
002538	2008	02158	 
002538	2009	02158	 
002538	2010	02158	 
002538	2011	42441	57
002538	2012	42441	58
002538	2013	42441	59
002538	2014	42439	63
002538	2015	30776	50
002538	2016	30776	51
002554	1993	00222	 
002554	1994	00222	59
002554	1995	00222	60
002554	1996	00222	 
002554	1997	00222	62
002554	1998	00222	 
;

data want;
 _iorc_=.;
 do until(last.execid);
  set have;
  by gvkey execid notsorted;
  if age then _iorc_=age;
  else age=_iorc_;
  output;
  _iorc_+1;
 end;
run;

proc print noobs;run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 14 Nov 2020 15:02:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698877#M213774</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-11-14T15:02:53Z</dc:date>
    </item>
    <item>
      <title>Re: Fill the gap with missing age</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698878#M213775</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;&amp;nbsp;your code has tabs in the datalines, so you should use dlm='09'x.&lt;/P&gt;
&lt;P&gt;And it does not solve the issue of a first observation of a group having a missing age.&lt;/P&gt;</description>
      <pubDate>Sat, 14 Nov 2020 15:46:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698878#M213775</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-11-14T15:46:17Z</dc:date>
    </item>
    <item>
      <title>Re: Fill the gap with missing age</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698879#M213776</link>
      <description>&lt;P&gt;HI Sir&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/11562"&gt;@Kurt_Bremser&lt;/a&gt;&amp;nbsp; Thank you. The tab delimiter didn't quite impact the output when I ran using PC SAS however yes it helps to be cognizant when running the same in a SAS EG editor page, and so I have added EXPANDTABS&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data have;
infile cards expandtabs truncover;
input GVKEY $	fyear	EXECID $	AGE;
cards;
002538	2007	02158	56
002538	2008	02158	 
002538	2009	02158	 
002538	2010	02158	 
002538	2011	42441	57
002538	2012	42441	58
002538	2013	42441	59
002538	2014	42439	63
002538	2015	30776	50
002538	2016	30776	51
002554	1993	00222	 
002554	1994	00222	59
002554	1995	00222	60
002554	1996	00222	 
002554	1997	00222	62
002554	1998	00222	 
;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;As far as "&lt;SPAN&gt;&lt;EM&gt;And it does not solve the issue of a first observation of a group having a missing age.&lt;/EM&gt;"-&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I believe you are referring to &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;GVKEY fyear EXECID AGE&lt;BR /&gt;&lt;/STRONG&gt;&lt;FONT color="#008000"&gt;002554 1993 00222 .&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;OP's expected out(&lt;EM&gt;WANT in the question&lt;/EM&gt;) below seems to be start with the 1st non-missing value&lt;/P&gt;
&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;FONT color="#008000"&gt;&lt;STRONG&gt;002554&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#008000"&gt;&lt;STRONG&gt;1993&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;FONT color="#008000"&gt;&lt;STRONG&gt;00222&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;002554&lt;/TD&gt;
&lt;TD&gt;1994&lt;/TD&gt;
&lt;TD&gt;00222&lt;/TD&gt;
&lt;TD&gt;59&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;002554&lt;/TD&gt;
&lt;TD&gt;1995&lt;/TD&gt;
&lt;TD&gt;00222&lt;/TD&gt;
&lt;TD&gt;60&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;002554&lt;/TD&gt;
&lt;TD&gt;1996&lt;/TD&gt;
&lt;TD&gt;00222&lt;/TD&gt;
&lt;TD&gt;61&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;002554&lt;/TD&gt;
&lt;TD&gt;1997&lt;/TD&gt;
&lt;TD&gt;00222&lt;/TD&gt;
&lt;TD&gt;62&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;002554&lt;/TD&gt;
&lt;TD&gt;1998&lt;/TD&gt;
&lt;TD&gt;00222&lt;/TD&gt;
&lt;TD&gt;63&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;which leads to me to believe the logic doesn't have to solve for the very first observation of a BY GROUP i.e. GVKEY EXECID combination. So, thus far, it appears my results seem to match the WANT of OP.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I guess whether the expected out WANT is actually different, I am afraid that would have to be confirmed by OP&lt;/P&gt;</description>
      <pubDate>Sat, 14 Nov 2020 16:00:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698879#M213776</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-11-14T16:00:25Z</dc:date>
    </item>
    <item>
      <title>Re: Fill the gap with missing age</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698881#M213777</link>
      <description>&lt;P&gt;Yes, but later the OP stated this&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN&gt;But sometimes first record is missing and for that I want to do it by descending fyear&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Sat, 14 Nov 2020 16:44:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698881#M213777</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-11-14T16:44:05Z</dc:date>
    </item>
    <item>
      <title>Re: Fill the gap with missing age</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698885#M213778</link>
      <description>&lt;P&gt;Hmm in that case, I guess the logic becomes a mere sequential counter starting from the earliest non-missing age value-&lt;/P&gt;
&lt;P&gt;So, no real charm&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
infile cards expandtabs truncover;
input GVKEY $	fyear	EXECID $	AGE;
cards;
002538	2007	02158	56
002538	2008	02158	 
002538	2009	02158	 
002538	2010	02158	 
002538	2011	42441	57
002538	2012	42441	58
002538	2013	42441	59
002538	2014	42439	63
002538	2015	30776	50
002538	2016	30776	51
002554	1993	00222	 
002554	1994	00222	59
002554	1995	00222	60
002554	1996	00222	 
002554	1997	00222	62
002554	1998	00222	 
;
data want;
 if _n_=1 then do;
  dcl hash h(dataset:'have(where=(AGE))');
  h.definekey('GVKEY','EXECID');
  h.definedata('age');
  h.definedone();
 end;
 do until(last.execid);
  set have(drop=age);
  by gvkey execid notsorted;
  if first.execid then _n_=h.find();
  else age=sum(age,1);
  output;
 end;
run;

proc print noobs;run;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 14 Nov 2020 17:40:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Fill-the-gap-with-missing-age/m-p/698885#M213778</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-11-14T17:40:13Z</dc:date>
    </item>
  </channel>
</rss>

