<?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: DO Loop in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682663#M206649</link>
    <description>&lt;P&gt;Thank you.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can this work if there is more than one variable in the table with missing data and to be updated?:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TABLE 1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;YEAR&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;ID&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TABLE 2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;YEAR&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;ID&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2013&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2013&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2014&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2014&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2015&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;A1&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2015&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&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;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TABLE 3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;YEAR&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;ID&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;IMPUTATION YEAR&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2015&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2013&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Wed, 09 Sep 2020 15:00:15 GMT</pubDate>
    <dc:creator>AP718</dc:creator>
    <dc:date>2020-09-09T15:00:15Z</dc:date>
    <item>
      <title>DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682569#M206609</link>
      <description>&lt;P&gt;I want to create a do loop to update Table 1 with the Code value from Table 2 (future years of data). I want the loop to check by Id and Year. At the first instance of the Code value being found then update Table 1 and End. Else continue to loop through all years until found and end after all years have been looped. The years to search or loop will be 2013-2015.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Table 3 is what I want as the final result. I want the year variable to be updated so I know which year the Code value was found. Thank you!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TABLE 1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;YEAR&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;ID&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TABLE 2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;YEAR&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;ID&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2013&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2013&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2014&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2014&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2015&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2015&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TABLE 3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;YEAR&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;ID&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;IMPUTATION YEAR&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2015&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2013&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 09 Sep 2020 11:23:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682569#M206609</guid>
      <dc:creator>AP718</dc:creator>
      <dc:date>2020-09-09T11:23:47Z</dc:date>
    </item>
    <item>
      <title>Re: DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682589#M206622</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data table1;
input year id code $;
cards;
2012	1  .
2012	2  .
;

data table2;
input year id code $;
cards;
2013	1	.
2013	2	B
2014	1	.
2014	2	.
2015	1	A
2015	2	.
;

data want;
 set table1;
 if _n_=1 then do;
  if 0 then set table2(rename=(year=imputation_year));
  dcl hash H (dataset:'table2(where=(not missing(code)) rename=(year=imputation_year) )') ;
  h.definekey  ("id") ;
  h.definedata('code','imputation_year');
  h.definedone () ;
 end;
 if h.find()=0;
run;


&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 09 Sep 2020 12:00:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682589#M206622</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-09-09T12:00:23Z</dc:date>
    </item>
    <item>
      <title>Re: DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682663#M206649</link>
      <description>&lt;P&gt;Thank you.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can this work if there is more than one variable in the table with missing data and to be updated?:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TABLE 1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;YEAR&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;ID&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TABLE 2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;YEAR&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;ID&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2013&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2013&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2014&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2014&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2015&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;A1&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2015&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&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;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TABLE 3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;YEAR&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;ID&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;CODE2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;IMPUTATION YEAR&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2015&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2012&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2013&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 09 Sep 2020 15:00:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682663#M206649</guid>
      <dc:creator>AP718</dc:creator>
      <dc:date>2020-09-09T15:00:15Z</dc:date>
    </item>
    <item>
      <title>Re: DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682689#M206663</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;


data table1;
infile cards truncover;
input year id (code code1 code2) ($);
cards;
2012	1			
2012	2			
;



data table2;
infile cards truncover;
input year id (code code1 code2) ($);
cards;
2013	1			
2013	2	B	B1	B2
2014	1			
2014	2			
2015	1	A	A1	A2
2015	2			
;

data want;
 if 0 then set table1;
 if _n_=1 then do;
  dcl hash h( );
  h.definekey  ("id") ;
  h.definedata('code','code1','code2','imputation_year');
  h.definedone () ;
  do until(z);
   set table2(rename=(year=imputation_year)) end=z;
   if cmiss(code,code1,code2)=0 then h.ref();
  end;
 end;
 set table1;
 if h.find()=0;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 09 Sep 2020 16:05:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682689#M206663</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-09-09T16:05:55Z</dc:date>
    </item>
    <item>
      <title>Re: DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682746#M206690</link>
      <description>I tried with this code by only changing the table1, table2 and want names but the fields I needed to update are now missing or deleted from my want table. Is there code I need to fill in for the hash statements?&lt;BR /&gt;</description>
      <pubDate>Wed, 09 Sep 2020 19:31:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682746#M206690</guid>
      <dc:creator>AP718</dc:creator>
      <dc:date>2020-09-09T19:31:16Z</dc:date>
    </item>
    <item>
      <title>Re: DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682749#M206693</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/140206"&gt;@AP718&lt;/a&gt;&amp;nbsp; Please post the best&amp;nbsp;&lt;STRONG&gt;representative mock sample&amp;nbsp;&lt;/STRONG&gt;of your real. That would help you and me to progress quickly towards the final solution. If it is a good representative of your real, you can just copy/paste and be over it. Also, post the expected result for the samples.&lt;/P&gt;</description>
      <pubDate>Wed, 09 Sep 2020 19:46:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682749#M206693</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-09-09T19:46:34Z</dc:date>
    </item>
    <item>
      <title>Re: DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682910#M206756</link>
      <description>Hi, what I've shared is the best mock sample. There is missing values in the Table 1 - Code, Code1 and Code2 fields that I want to update with the values from the Table 2 - Code, Code1 and Code2 fields. I want to update or link the tables by the ID field. I want to create a loop or iterative process that will search Table 2 by the ID. At the first instance of the Code, Code1, Code2 values being found in Table 2 then update the Code, Code1 , Code2 fields in Table 1 and End. If not found then leave blank. My expected end result is what I shared in Table 3. The values for Code have no significance. Thanks again!</description>
      <pubDate>Thu, 10 Sep 2020 11:48:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682910#M206756</guid>
      <dc:creator>AP718</dc:creator>
      <dc:date>2020-09-10T11:48:50Z</dc:date>
    </item>
    <item>
      <title>Re: DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682913#M206757</link>
      <description>&lt;P&gt;Can you describe what you are trying to do in words.&amp;nbsp; Don't try to code it yet, don't talk about loops, just explain the rule in words.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Some of what you are saying makes it sound like you want to find the first value of CODE and YEAR from TABLE2 per ID where the value of CODE is not missing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the data is sorted by ID that is easy.&amp;nbsp; If it is not sorted the use PROC SORT to sort it.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data first_code ;
  set table2;
   by id year ;
   where not missing(code);
   if first.id;
   keep id code year;
   rename code=first_code year=imputation_year ;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Now just merge it with your existing TABLE1.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
  merge table1 first_code ;
  by id;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 10 Sep 2020 12:05:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682913#M206757</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2020-09-10T12:05:17Z</dc:date>
    </item>
    <item>
      <title>Re: DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682922#M206760</link>
      <description>I see. I may have over complicated it by stating do loop. This is essentially what I am looking for. Is there a way to do this using HASH? As it's a large table I am working with. Thanks</description>
      <pubDate>Thu, 10 Sep 2020 12:33:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682922#M206760</guid>
      <dc:creator>AP718</dc:creator>
      <dc:date>2020-09-10T12:33:58Z</dc:date>
    </item>
    <item>
      <title>Re: DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682932#M206763</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/140206"&gt;@AP718&lt;/a&gt;&amp;nbsp; I am not sure why the code works on the sample and why it doesn't on your real. I tested the same below making a slight change i.e i&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if h.find() ne 0 then call missing(code,code1,code2,imputation_year);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;instead of&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; if h.find()=0;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Can you please review thoroughly, make the appropriate changes carefully and execute the below?-&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

 
data table1;
infile cards truncover;
input year id (code code1 code2) ($);
cards;
2012	1			
2012	2			
;



data table2;
infile cards truncover;
input year id (code code1 code2) ($);
cards;
2013	1			
2013	2	B	B1	B2
2014	1			
2014	2			
2015	1	A	A1	A2
2015	2			
;

data want;
 if 0 then set table1;
 if _n_=1 then do;
  dcl hash h( );
  h.definekey  ("id") ;
  h.definedata('code','code1','code2','imputation_year');
  h.definedone () ;
  do until(z);
   set table2(rename=(year=imputation_year)) end=z;
   if cmiss(code,code1,code2)=0 then h.ref();
  end;
 end;
 set table1;
 if h.find() ne 0 then call missing(code,code1,code2,imputation_year);
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;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 10 Sep 2020 13:33:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682932#M206763</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-09-10T13:33:07Z</dc:date>
    </item>
    <item>
      <title>Re: DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682935#M206764</link>
      <description>&lt;P&gt;HASH objects reside in memory, so you might not be able to store a really large table in memory.&lt;/P&gt;
&lt;P&gt;What are the actual sizes of your tables?&amp;nbsp; &amp;nbsp;It might be that one could fit into a hash and the other not.&lt;/P&gt;
&lt;P&gt;Is your TABLE1 only a subset of the IDs in your TABLE2?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Are you not processing the data in the already defined key order?&amp;nbsp; I would assume that your large table is already sorted or index by ID and YEAR so that the data step I posted is simple to do.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the data is already sorted/indexed you can probably do what I posted in a single step.&lt;/P&gt;
&lt;P&gt;So for example if you want to keep just the values in TABLE1 and add those two new columns from TABLE2 you might just use SET and RETAIN to do that.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want ;
   set table2 (in=in2 keep=id code year rename=(code=_code year=_year)
      where=(_code is not missing))
         table1 (in=in1)
  ;
  by id;
  if first.id then do;  
    if in2 then do;
       first_code=_code; first_year=_year ;
    end;
    else call missing(first_code,first_year);
    retain first_code first_year ;
  end;
  if in1;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 10 Sep 2020 13:37:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682935#M206764</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2020-09-10T13:37:24Z</dc:date>
    </item>
    <item>
      <title>Re: DO Loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682956#M206776</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;Thank you both. I was able to impute the data by using the below HASH code:
It seems the difference was to set the if h.find() ge 0 instead of if h.find()=0 and I had to declare the source dataset.
&lt;BR /&gt;&lt;BR /&gt;data want(rename=(year1=imputation_year));
 set table1;
 if _n_=1 then do;
  dcl hash h(dataset:"table2");
  h.definekey  ("id") ;
  h.definedata("year1","code","code1","code2");
  h.definedone ();
 end;
if h.find()ge 0;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 10 Sep 2020 15:07:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/DO-Loop/m-p/682956#M206776</guid>
      <dc:creator>AP718</dc:creator>
      <dc:date>2020-09-10T15:07:56Z</dc:date>
    </item>
  </channel>
</rss>

