<?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 Missing Dates in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Missing-Dates/m-p/33093#M8007</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Fred,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is a rather brute force solution:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; informat date date9.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input product date total;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;1 01jul2011 1&lt;/P&gt;&lt;P&gt;1 03jul2011 5&lt;/P&gt;&lt;P&gt;1 17jul2011 2&lt;/P&gt;&lt;P&gt;2 02jul2011 3&lt;/P&gt;&lt;P&gt;2 18jul2011 4&lt;/P&gt;&lt;P&gt;3 02jul2011 3&lt;/P&gt;&lt;P&gt;3 17jul2011 4&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql noprint;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create table products as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select distinct product&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have&lt;/P&gt;&lt;P&gt; ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data products;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set products;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do date='01jul2011'd to '18jul2011'd;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; merge have products;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by product date;&lt;/P&gt;&lt;P&gt;&amp;nbsp; total=max(total,0);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HTH,&lt;/P&gt;&lt;P&gt;Art&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Jul 2011 19:01:59 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2011-07-18T19:01:59Z</dc:date>
    <item>
      <title>Missing Dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Missing-Dates/m-p/33091#M8005</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;H3 class="groups"&gt;Hello I need a little help with missing Dates. &lt;/H3&gt;&lt;P class="summary"&gt;My dataset contains a list of about 100 products with total sales by day. &lt;BR /&gt;Say for example the date range starts July 1st and ends July 18th. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Some products have dates &amp;amp; totals missing for July 1st, July 10th and July 18th. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can I populate a new dataset that contains everything from the original dataset but with any missing dates for each product with total being 0? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Fred&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Jul 2011 16:58:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Missing-Dates/m-p/33091#M8005</guid>
      <dc:creator>fred_major</dc:creator>
      <dc:date>2011-07-18T16:58:18Z</dc:date>
    </item>
    <item>
      <title>Missing Dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Missing-Dates/m-p/33092#M8006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Create a data set that has the list of dates you need and then left join on the data sets.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ie&lt;/P&gt;&lt;P&gt;data all_dates;&lt;/P&gt;&lt;P&gt;start_date='01Jul2011'd;&lt;/P&gt;&lt;P&gt;end_date = '18Jul2011'd;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;num_days=end_date-start_date+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to num_days;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date=start_date+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then join the dataset to yours and verify the values are set to 0. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table test1 as&lt;/P&gt;&lt;P&gt;select a.*, b.*&lt;BR /&gt;from all_dates a&lt;/P&gt;&lt;P&gt;left join have b&lt;/P&gt;&lt;P&gt;on a.date=b.date;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Another option is the lag function...check if the previous date-current-date is 1 but then you could have consecutive dates missing and things can get complex. You'll probably have to tweak the above code to get the date ranges correctly set and the joins to get the data you need. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I find this a simple and straightforward solution.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Jul 2011 18:13:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Missing-Dates/m-p/33092#M8006</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2011-07-18T18:13:48Z</dc:date>
    </item>
    <item>
      <title>Missing Dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Missing-Dates/m-p/33093#M8007</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Fred,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is a rather brute force solution:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; informat date date9.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input product date total;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;1 01jul2011 1&lt;/P&gt;&lt;P&gt;1 03jul2011 5&lt;/P&gt;&lt;P&gt;1 17jul2011 2&lt;/P&gt;&lt;P&gt;2 02jul2011 3&lt;/P&gt;&lt;P&gt;2 18jul2011 4&lt;/P&gt;&lt;P&gt;3 02jul2011 3&lt;/P&gt;&lt;P&gt;3 17jul2011 4&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql noprint;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create table products as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select distinct product&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have&lt;/P&gt;&lt;P&gt; ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data products;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set products;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do date='01jul2011'd to '18jul2011'd;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; merge have products;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by product date;&lt;/P&gt;&lt;P&gt;&amp;nbsp; total=max(total,0);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HTH,&lt;/P&gt;&lt;P&gt;Art&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Jul 2011 19:01:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Missing-Dates/m-p/33093#M8007</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-07-18T19:01:59Z</dc:date>
    </item>
    <item>
      <title>Missing Dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Missing-Dates/m-p/33094#M8008</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Or&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data have;

&amp;nbsp; informat date date9.;
&amp;nbsp; input product date total;
&amp;nbsp; cards;
1 01jul2011 1
1 03jul2011 5
1 17jul2011 2
2 02jul2011 3
2 18jul2011 4
3 02jul2011 3
3 17jul2011 4
;

 

proc sql noprint;
&amp;nbsp; create table products as
&amp;nbsp;&amp;nbsp;&amp;nbsp; select distinct product
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have
; quit;

 

data products;
&amp;nbsp; set products;
&amp;nbsp; do date='01jul2011'd to '18jul2011'd;
&amp;nbsp;&amp;nbsp;&amp;nbsp; output;
&amp;nbsp; end;
run;

 

data want;
&amp;nbsp; merge have products;
&amp;nbsp; by product date;
run;
proc stdize data=want out=w missing=0 reponly;
 var total;
run;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Jul 2011 08:45:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Missing-Dates/m-p/33094#M8008</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-07-19T08:45:34Z</dc:date>
    </item>
    <item>
      <title>Missing Dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Missing-Dates/m-p/33095#M8009</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Thanks everyone, I always learn something new when I post in this forum.&lt;/P&gt;&lt;P&gt;Just what I needed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Fred&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Jul 2011 12:59:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Missing-Dates/m-p/33095#M8009</guid>
      <dc:creator>fred_major</dc:creator>
      <dc:date>2011-07-19T12:59:53Z</dc:date>
    </item>
  </channel>
</rss>

