<?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 Filling in Missing Data that Really is Not Missing in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Filling-in-Missing-Data-that-Really-is-Not-Missing/m-p/608806#M177209</link>
    <description>&lt;P&gt;When we bill aircraft, there are a number of systems that do the billing. There is one variable that will tie together the data from the systems. This variable is called the billing_flight_id. Suppose I have data that is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;billable_id&lt;/TD&gt;&lt;TD&gt;FLT_BIZ_UID&lt;/TD&gt;&lt;TD&gt;fdaas_flight_id&lt;/TD&gt;&lt;TD&gt;billing_flight_id&lt;/TD&gt;&lt;TD&gt;chargetype_code&lt;/TD&gt;&lt;TD&gt;ac_type&lt;/TD&gt;&lt;TD&gt;synonym&lt;/TD&gt;&lt;TD&gt;more variables&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97975800&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97975800&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97988982&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98028109&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;H/A343/*&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;You can see that the billing_flight_id is the same for all 3 systems of billing charges (M,T,N). What I would like to do is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For every billing_flight_id, if there is a FLT_BIZ_UID and fdaas_flight_id present as part of its billing process, fill in the missing FLT_BIZ_UID and fdaas_flight_id with the existing values of those variables. All other variables would be the same. So my output would be:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;billable_id&lt;/TD&gt;&lt;TD&gt;FLT_BIZ_UID&lt;/TD&gt;&lt;TD&gt;fdaas_flight_id&lt;/TD&gt;&lt;TD&gt;billing_flight_id&lt;/TD&gt;&lt;TD&gt;chargetype_code&lt;/TD&gt;&lt;TD&gt;ac_type&lt;/TD&gt;&lt;TD&gt;synonym&lt;/TD&gt;&lt;TD&gt;more variables&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97975800&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97975800&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97988982&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;33614638&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;33614638&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98028109&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;33614638&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;33614638&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;H/A343/*&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;The bold are the changes.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;</description>
    <pubDate>Mon, 02 Dec 2019 18:14:26 GMT</pubDate>
    <dc:creator>BCNAV</dc:creator>
    <dc:date>2019-12-02T18:14:26Z</dc:date>
    <item>
      <title>Filling in Missing Data that Really is Not Missing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Filling-in-Missing-Data-that-Really-is-Not-Missing/m-p/608806#M177209</link>
      <description>&lt;P&gt;When we bill aircraft, there are a number of systems that do the billing. There is one variable that will tie together the data from the systems. This variable is called the billing_flight_id. Suppose I have data that is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;billable_id&lt;/TD&gt;&lt;TD&gt;FLT_BIZ_UID&lt;/TD&gt;&lt;TD&gt;fdaas_flight_id&lt;/TD&gt;&lt;TD&gt;billing_flight_id&lt;/TD&gt;&lt;TD&gt;chargetype_code&lt;/TD&gt;&lt;TD&gt;ac_type&lt;/TD&gt;&lt;TD&gt;synonym&lt;/TD&gt;&lt;TD&gt;more variables&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97975800&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97975800&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97988982&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98028109&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;H/A343/*&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;You can see that the billing_flight_id is the same for all 3 systems of billing charges (M,T,N). What I would like to do is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For every billing_flight_id, if there is a FLT_BIZ_UID and fdaas_flight_id present as part of its billing process, fill in the missing FLT_BIZ_UID and fdaas_flight_id with the existing values of those variables. All other variables would be the same. So my output would be:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;billable_id&lt;/TD&gt;&lt;TD&gt;FLT_BIZ_UID&lt;/TD&gt;&lt;TD&gt;fdaas_flight_id&lt;/TD&gt;&lt;TD&gt;billing_flight_id&lt;/TD&gt;&lt;TD&gt;chargetype_code&lt;/TD&gt;&lt;TD&gt;ac_type&lt;/TD&gt;&lt;TD&gt;synonym&lt;/TD&gt;&lt;TD&gt;more variables&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97975800&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97975800&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;33614638&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;97988982&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;33614638&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;33614638&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;T&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;98028109&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;33614638&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;33614638&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;23377506&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;TD&gt;A343&lt;/TD&gt;&lt;TD&gt;H/A343/*&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;The bold are the changes.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;</description>
      <pubDate>Mon, 02 Dec 2019 18:14:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Filling-in-Missing-Data-that-Really-is-Not-Missing/m-p/608806#M177209</guid>
      <dc:creator>BCNAV</dc:creator>
      <dc:date>2019-12-02T18:14:26Z</dc:date>
    </item>
    <item>
      <title>Re: Filling in Missing Data that Really is Not Missing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Filling-in-Missing-Data-that-Really-is-Not-Missing/m-p/608809#M177211</link>
      <description>&lt;P&gt;Here is one way&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input billable_id FLT_BIZ_UID fdaas_flight_id billing_flight_id chargetype_code $ ac_type $ synonym $;
datalines;
97975800 33614638 33614638 23377506 M A343 A343   
97975800 33614638 33614638 23377506 M A343 A343   
97988982 .        .        23377506 T A343 .      
98028109 .        .        23377506 N A343 H/A343/
;

data want(drop=_:);
   set have;
   if FLT_BIZ_UID ne . then _FLT_BIZ_UID=FLT_BIZ_UID;
   if fdaas_flight_id ne . then _fdaas_flight_id=fdaas_flight_id;
   if FLT_BIZ_UID=. then FLT_BIZ_UID=_FLT_BIZ_UID;
   if fdaas_flight_id=. then fdaas_flight_id=_fdaas_flight_id;
   retain _:;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 02 Dec 2019 18:28:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Filling-in-Missing-Data-that-Really-is-Not-Missing/m-p/608809#M177211</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-12-02T18:28:52Z</dc:date>
    </item>
    <item>
      <title>Re: Filling in Missing Data that Really is Not Missing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Filling-in-Missing-Data-that-Really-is-Not-Missing/m-p/608982#M177280</link>
      <description>&lt;P&gt;One way to do it is this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  if 0 then set have; /* just to get variables in right order */
  merge 
    have(drop=FLT_BIZ_UID fdaas_flight_id)  
    have(where=(FLT_BIZ_UID is not null and fdaas_flight_id is not null) keep=FLT_BIZ_UID fdaas_flight_id billing_flight_id)
	;
  by billing_flight_id;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Just remember to sort by&amp;nbsp;billing_flight_id first.&lt;/P&gt;</description>
      <pubDate>Tue, 03 Dec 2019 08:56:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Filling-in-Missing-Data-that-Really-is-Not-Missing/m-p/608982#M177280</guid>
      <dc:creator>s_lassen</dc:creator>
      <dc:date>2019-12-03T08:56:10Z</dc:date>
    </item>
    <item>
      <title>Re: Filling in Missing Data that Really is Not Missing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Filling-in-Missing-Data-that-Really-is-Not-Missing/m-p/609274#M177387</link>
      <description>&lt;P&gt;data bill;&lt;BR /&gt;input bill1 FLT fdaas billing;&lt;BR /&gt;cards;&lt;BR /&gt;97975800 33614638 33614638 23377506&lt;BR /&gt;97975800 33614638 33614638 23377506&lt;BR /&gt;97988982 . . 23377506&lt;BR /&gt;98028109 . . 23377506&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data b;&lt;BR /&gt;set bill;&lt;BR /&gt;retain x y;&lt;BR /&gt;if not missing(flt) then x=flt;&lt;BR /&gt;else flt=x;&lt;BR /&gt;if not missing(fdaas) then y=fdaas;&lt;BR /&gt;else fdaas=y;&lt;/P&gt;&lt;P&gt;drop x y;&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Dec 2019 06:29:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Filling-in-Missing-Data-that-Really-is-Not-Missing/m-p/609274#M177387</guid>
      <dc:creator>vineelvarma</dc:creator>
      <dc:date>2019-12-04T06:29:00Z</dc:date>
    </item>
  </channel>
</rss>

