<?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 Populating columns with missing variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474702#M121997</link>
    <description>Dear All My data is as follows Date ST IDa IDb Cat JUN012018 500 A AA I JUN022018 500 A AA I JUN032018 500 A AA I JUN012018 501 A AA JUN022018 501 A AA JUN032018 501 A AA JUN012018 502 A AA I JUN012018 502 A AA I JUN012018 500 A AAB JUN022018 500 A AAB JUN032018 500 A AAB JUN012018 501 A AAB D JUN022018 501 A AAB D JUN032018 501 A AAB D JUN012018 502 A AAB JUN012018 502 A AAB and so on The data set should look like this Date ST IDa IDb Cat JUN012018 500 A AA I JUN022018 500 A AA I JUN032018 500 A AA I JUN012018 501 A AA I JUN022018 501 A AA I JUN032018 501 A AA I JUN012018 502 A AA I JUN012018 502 A AA I JUN012018 500 A AAB D JUN022018 500 A AAB D JUN032018 500 A AAB D JUN012018 501 A AAB D JUN022018 501 A AAB D JUN032018 501 A AAB D JUN012018 502 A AAB D JUN012018 502 A AAB D Thanks Stan</description>
    <pubDate>Sat, 30 Jun 2018 22:16:04 GMT</pubDate>
    <dc:creator>RandyStan</dc:creator>
    <dc:date>2018-06-30T22:16:04Z</dc:date>
    <item>
      <title>Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474702#M121997</link>
      <description>Dear All My data is as follows Date ST IDa IDb Cat JUN012018 500 A AA I JUN022018 500 A AA I JUN032018 500 A AA I JUN012018 501 A AA JUN022018 501 A AA JUN032018 501 A AA JUN012018 502 A AA I JUN012018 502 A AA I JUN012018 500 A AAB JUN022018 500 A AAB JUN032018 500 A AAB JUN012018 501 A AAB D JUN022018 501 A AAB D JUN032018 501 A AAB D JUN012018 502 A AAB JUN012018 502 A AAB and so on The data set should look like this Date ST IDa IDb Cat JUN012018 500 A AA I JUN022018 500 A AA I JUN032018 500 A AA I JUN012018 501 A AA I JUN022018 501 A AA I JUN032018 501 A AA I JUN012018 502 A AA I JUN012018 502 A AA I JUN012018 500 A AAB D JUN022018 500 A AAB D JUN032018 500 A AAB D JUN012018 501 A AAB D JUN022018 501 A AAB D JUN032018 501 A AAB D JUN012018 502 A AAB D JUN012018 502 A AAB D Thanks Stan</description>
      <pubDate>Sat, 30 Jun 2018 22:16:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474702#M121997</guid>
      <dc:creator>RandyStan</dc:creator>
      <dc:date>2018-06-30T22:16:04Z</dc:date>
    </item>
    <item>
      <title>Re: Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474703#M121998</link>
      <description>&lt;P&gt;Putting this question again because the formatting seems to be messed up&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Dear All:
My data set is as follows

Date                            ST                        IDa                         IDb              Cat
JUN012018               500                          A                           AA                I
JUN022018               500                          A                           AA                I
JUN032018               500                          A                           AA                I

JUN012018                501                         A                           AA 

JUN022018               501                          A                           AA

JUN032018                501                         A                           AA

JUN012018                502                         A                           AA                 I

JUN012018                502                          A                           AA                I

JUN012018               500                          A                           AAB               
JUN022018               500                          A                           AAB                
JUN032018               500                          A                           AAB                

JUN012018                501                         A                           AAB              D

JUN022018               501                          A                           AAB              D

JUN032018                501                         A                           AAB              D

JUN012018                502                         A                           AAB                 

JUN012018                502                          A                           AAB                

&amp;nbsp;

&amp;nbsp;

and so on

The data set should look like this

&amp;nbsp;

&amp;nbsp;

Date                            ST                        IDa                         IDb              Cat
JUN012018               500                          A                           AA                I
JUN022018               500                          A                           AA                I
JUN032018               500                          A                           AA                I

JUN012018                501                         A                           AA                I

JUN022018               501                          A                           AA                I

JUN032018                501                         A                           AA                I

JUN012018                502                         A                           AA                 I

JUN012018                502                          A                           AA                I

JUN012018               500                          A                           AAB             D              
JUN022018               500                          A                           AAB             D            
JUN032018               500                          A                           AAB             D   

JUN012018                501                         A                           AAB              D

JUN022018               501                          A                           AAB              D

JUN032018                501                         A                           AAB              D

JUN012018                502                         A                           AAB              D      

JUN012018                502                          A                           AAB             D

&amp;nbsp;

&amp;nbsp;

Thanks 

Stan          &lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 30 Jun 2018 22:22:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474703#M121998</guid>
      <dc:creator>RandyStan</dc:creator>
      <dc:date>2018-06-30T22:22:59Z</dc:date>
    </item>
    <item>
      <title>Re: Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474706#M122000</link>
      <description>&lt;P&gt;hat's the difference between the two?&lt;/P&gt;</description>
      <pubDate>Sat, 30 Jun 2018 22:51:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474706#M122000</guid>
      <dc:creator>pau13rown</dc:creator>
      <dc:date>2018-06-30T22:51:25Z</dc:date>
    </item>
    <item>
      <title>Re: Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474707#M122001</link>
      <description>&lt;P&gt;No difference.&amp;nbsp; I saw that the formatting was messed up, so I posted it again.&amp;nbsp; OI hope that the data and the question is clearer now.&lt;/P&gt;</description>
      <pubDate>Sat, 30 Jun 2018 23:14:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474707#M122001</guid>
      <dc:creator>RandyStan</dc:creator>
      <dc:date>2018-06-30T23:14:08Z</dc:date>
    </item>
    <item>
      <title>Re: Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474708#M122002</link>
      <description>&lt;P&gt;The start and end look the same to me.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here’s &amp;nbsp;some instructions on posting sample data. Also, don’t edit the info in the code block in the main editor, that’s messes up the line breaks for some reason.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/133090"&gt;@RandyStan&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;No difference.&amp;nbsp; I saw that the formatting was messed up, so I posted it again.&amp;nbsp; OI hope that the data and the question is clearer now.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 30 Jun 2018 23:25:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474708#M122002</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-06-30T23:25:01Z</dc:date>
    </item>
    <item>
      <title>Re: Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474710#M122003</link>
      <description>&lt;P&gt;Please check the CAT column.&amp;nbsp; In the first data set the variables are missing.&amp;nbsp; In the second, the data set I want, they column CAT is populated.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Thanks so much&lt;/P&gt;</description>
      <pubDate>Sat, 30 Jun 2018 23:30:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474710#M122003</guid>
      <dc:creator>RandyStan</dc:creator>
      <dc:date>2018-06-30T23:30:13Z</dc:date>
    </item>
    <item>
      <title>Re: Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474711#M122004</link>
      <description>&lt;P&gt;Given the way the data is formatted it’s really hard to see that or what the logic is.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/133090"&gt;@RandyStan&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Please check the CAT column.&amp;nbsp; In the first data set the variables are missing.&amp;nbsp; In the second, the data set I want, they column CAT is populated.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;Thanks so much&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 30 Jun 2018 23:33:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474711#M122004</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-06-30T23:33:41Z</dc:date>
    </item>
    <item>
      <title>Re: Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474717#M122005</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/133090"&gt;@RandyStan&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;Below picture created by combining your have and want data.&lt;/P&gt;
&lt;P&gt;Please explain the logic how you'd populate "CAT_WANT".&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.JPG" style="width: 582px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/21515iB4C69EB1013DE93B/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.JPG" alt="Capture.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below how you'd best post sample data if you want to motivate people to post answers with working code.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  infile datalines dlm=' ' truncover;
  format Date date9.;
  input _dt1 $1-3 _dt2 $4-5 _dt3 $6-9 (ST IDa IDb Cat_Have) ($);
  date=input(cats(_dt2,_dt1,_dt3),date9.);
  drop _dt:;
  datalines;
JUN012018 500 A AA I
JUN022018 500 A AA I
JUN032018 500 A AA I
JUN012018 501 A AA 
JUN022018 501 A AA
JUN032018 501 A AA
JUN012018 502 A AA I
JUN012018 502 A AA I
JUN012018 500 A AAB 
JUN022018 500 A AAB 
JUN032018 500 A AAB 
JUN012018 501 A AAB D
JUN022018 501 A AAB D
JUN032018 501 A AAB D
JUN012018 502 A AAB 
JUN012018 502 A AAB 
;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 01 Jul 2018 01:52:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474717#M122005</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2018-07-01T01:52:44Z</dc:date>
    </item>
    <item>
      <title>Re: Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474725#M122008</link>
      <description>&lt;P&gt;Use a double DO UNTIL() loop.The first loop records the last&amp;nbsp;non-missing Cat value in the IDb-group, the second loop forces that value&amp;nbsp;where Cat is missing :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
length Date $10 ST 8 IDa $1 IDb $3 Cat $1;
infile datalines truncover;
input Date ST IDa IDb Cat;
datalines;
JUN012018 500 A AA I
JUN022018 500 A AA I
JUN032018 500 A AA I
JUN012018 501 A AA 
JUN022018 501 A AA
JUN032018 501 A AA
JUN012018 502 A AA I
JUN012018 502 A AA I
JUN012018 500 A AAB 
JUN022018 500 A AAB 
JUN032018 500 A AAB 
JUN012018 501 A AAB D
JUN022018 501 A AAB D
JUN032018 501 A AAB D
JUN012018 502 A AAB 
JUN012018 502 A AAB 
;

data want;
do until(last.IDb);
    set have; by IDb notsorted;
    if not missing(Cat) then groupCat = Cat;
    end;
do until(last.IDb);
    set have; by IDb notsorted;
    if missing(Cat) then Cat = groupCat;
    output;
    end;
drop groupCat;
run;

proc print data=want 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>Sun, 01 Jul 2018 02:50:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474725#M122008</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2018-07-01T02:50:42Z</dc:date>
    </item>
    <item>
      <title>Re: Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474737#M122012</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
length Date $10 ST 8 IDa $1 IDb $3 Cat $1;
infile datalines truncover;
input Date ST IDa IDb Cat;
datalines;
JUN012018 500 A AA I
JUN022018 500 A AA I
JUN032018 500 A AA I
JUN012018 501 A AA 
JUN022018 501 A AA
JUN032018 501 A AA
JUN012018 502 A AA I
JUN012018 502 A AA I
JUN012018 500 A AAB 
JUN022018 500 A AAB 
JUN032018 500 A AAB 
JUN012018 501 A AAB D
JUN022018 501 A AAB D
JUN032018 501 A AAB D
JUN012018 502 A AAB 
JUN012018 502 A AAB 
;


proc sql;
create table want(drop=cat) as
select *,max(cat) as cat1
from have
group by idb
order by idb,st,date;
quit;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 01 Jul 2018 04:01:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474737#M122012</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-07-01T04:01:07Z</dc:date>
    </item>
    <item>
      <title>Re: Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474741#M122016</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines truncover;
input Date : $10. ST  IDa $ IDb $ Cat $;
datalines;
JUN012018 500 A AA I
JUN022018 500 A AA I
JUN032018 500 A AA I
JUN012018 501 A AA 
JUN022018 501 A AA
JUN032018 501 A AA
JUN012018 502 A AA I
JUN012018 502 A AA I
JUN012018 500 A AAB 
JUN022018 500 A AAB 
JUN032018 500 A AAB 
JUN012018 501 A AAB D
JUN022018 501 A AAB D
JUN032018 501 A AAB D
JUN012018 502 A AAB 
JUN012018 502 A AAB 
;

data want;
set have;
if (_n_ = 1) then do;
if 0 then set have(keep=idb cat);
    declare hash h(dataset: "have(keep=idb cat where=(not missing(cat))", duplicate: "r");
    h.definekey('idb');
    h.definedata('cat');
    h.definedone();
 end;
 rc=h.find();
 drop rc;
 run;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 01 Jul 2018 04:53:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474741#M122016</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-07-01T04:53:51Z</dc:date>
    </item>
    <item>
      <title>Re: Populating columns with missing variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474743#M122018</link>
      <description>&lt;P&gt;This problem is very amenable to a self merge, where the first instance of HAVE has all the records and variables.&amp;nbsp; The second instance has only the BY-variable(s) (IDB in your case) and the new variable of interest (cat_want, renamed from cat_have), &lt;EM&gt;&lt;STRONG&gt;and it only has records with non-blank values of cat_want&lt;/STRONG&gt;&lt;/EM&gt;:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  merge have
        have (keep=idb cat_have rename=(cat_have=cat_want) where=(cat_want^=' '));
  by idb;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 01 Jul 2018 05:22:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Populating-columns-with-missing-variables/m-p/474743#M122018</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2018-07-01T05:22:55Z</dc:date>
    </item>
  </channel>
</rss>

