<?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: Autofilling a list of dates in a specific range from partial dates in a column in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Autofilling-a-list-of-dates-in-a-specific-range-from-partial/m-p/642770#M191797</link>
    <description>&lt;P&gt;try next code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have; 
input county $ date :mmddyy10. value1 value2 total;
format date mmddyy10.;
datalines;
CountyA 03/02/2020 2 0 2
CountyA 03/03/2020 3 1 4
CountyA 03/05/2020 5 2 7
CountyB 03/02/2020 1 0 1
CountyB 03/04/2020 4 1 5
CountyB 03/06/2020 2 1 3
	;
run;

proc sort data=have; by county date; run;

data want;
 set have;
  by county;
     array dayx d1-d6;
	 if first.county then do 1 to 6;
	    dayx(i) = .;
     end;
     if not last.county then do;
        if date &amp;lt; '01jun2020'd or
		   date &amp;gt; '06jun2020'd then output;
		else dayx(day(date)) = 1;
	end;
	if last.county then do;
	   if '01jun2020'd le date le '06jun2020'd
	   then dayx(day(date)) = 1;
	   output;
	   do i=1 to 6;
	      if dayx(i) = 0 then do;
		     valu1=0; valu2=0; value3=0;
			 date = mdy(6,i,2020);
			 output;
		  end;
		end;
	end;
run;

proc sort data=have; by county date; run;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 24 Apr 2020 19:46:37 GMT</pubDate>
    <dc:creator>Shmuel</dc:creator>
    <dc:date>2020-04-24T19:46:37Z</dc:date>
    <item>
      <title>Autofilling a list of dates in a specific range from partial dates in a column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Autofilling-a-list-of-dates-in-a-specific-range-from-partial/m-p/642759#M191791</link>
      <description>&lt;P&gt;I have a dataset with values by date and county. I want to look at rolling averages over time and compare them by county, but I think I need to back fill-in the dates between a specific range of values first. I want to all the dates from March 1 to March 6. If the date isn't currently there then the values should be set to 0.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone help me find a way to do that?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;data have; 
input county $ date :mmddyy10. value1 value2 total;
format date mmddyy10.;
datalines;
CountyA 03/02/2020 2 0 2
CountyA 03/03/2020 3 1 4
CountyA 03/05/2020 5 2 7
CountyB 03/02/2020 1 0 1
CountyB 03/04/2020 4 1 5
CountyB 03/06/2020 2 1 3
	;
run;


data want; 
input county $ date :mmddyy10. value1 value2 total;
format date mmddyy10.;
datalines;
CountyA 03/01/2020 0 0 0
CountyA 03/02/2020 2 0 2
CountyA 03/03/2020 3 1 4
CountyA 03/04/2020 0 0 0
CountyA 03/05/2020 5 2 7
CountyA 03/06/2020 0 0 0
CountyB 03/01/2020 0 0 0
CountyB 03/02/2020 1 0 1
CountyB 03/03/2020 0 0 0
CountyB 03/04/2020 4 1 5
CountyB 03/05/2020 0 0 0
CountyB 03/06/2020 2 1 3
	;
run;&lt;/PRE&gt;</description>
      <pubDate>Fri, 24 Apr 2020 19:05:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Autofilling-a-list-of-dates-in-a-specific-range-from-partial/m-p/642759#M191791</guid>
      <dc:creator>csanfor2</dc:creator>
      <dc:date>2020-04-24T19:05:51Z</dc:date>
    </item>
    <item>
      <title>Re: Autofilling a list of dates in a specific range from partial dates in a column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Autofilling-a-list-of-dates-in-a-specific-range-from-partial/m-p/642763#M191795</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have; 
input county $ date :mmddyy10. value1 value2 total;
format date mmddyy10.;
datalines;
CountyA 03/02/2020 2 0 2
CountyA 03/03/2020 3 1 4
CountyA 03/05/2020 5 2 7
CountyB 03/02/2020 1 0 1
CountyB 03/04/2020 4 1 5
CountyB 03/06/2020 2 1 3
	;
run;


%let start_date=01mar2020;
%let end_date=06mar2020;
data want;
 if _n_=1 then do;
  dcl hash H () ;
  h.definekey  ("date") ;
  h.definedata ("value1", "value2", "total") ;
  h.definedone () ;
 end;
 do until(last.county);
  set have;
  by county;
  h.add();
 end;
 do date="&amp;amp;start_date"d to "&amp;amp;end_date"d;
  value1=0;value2=0;total=0;
  _n_=h.find();
  output;
 end;
 h.clear();
run;

  
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="center"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l header" scope="col"&gt;county&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;date&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;value1&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;value2&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;total&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyA&lt;/TD&gt;
&lt;TD class="r data"&gt;03/01/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyA&lt;/TD&gt;
&lt;TD class="r data"&gt;03/02/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyA&lt;/TD&gt;
&lt;TD class="r data"&gt;03/03/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;3&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyA&lt;/TD&gt;
&lt;TD class="r data"&gt;03/04/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyA&lt;/TD&gt;
&lt;TD class="r data"&gt;03/05/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;5&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;TD class="r data"&gt;7&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyA&lt;/TD&gt;
&lt;TD class="r data"&gt;03/06/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyB&lt;/TD&gt;
&lt;TD class="r data"&gt;03/01/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyB&lt;/TD&gt;
&lt;TD class="r data"&gt;03/02/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyB&lt;/TD&gt;
&lt;TD class="r data"&gt;03/03/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyB&lt;/TD&gt;
&lt;TD class="r data"&gt;03/04/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyB&lt;/TD&gt;
&lt;TD class="r data"&gt;03/05/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;TD class="r data"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;CountyB&lt;/TD&gt;
&lt;TD class="r data"&gt;03/06/2020&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 24 Apr 2020 19:34:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Autofilling-a-list-of-dates-in-a-specific-range-from-partial/m-p/642763#M191795</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-04-24T19:34:03Z</dc:date>
    </item>
    <item>
      <title>Re: Autofilling a list of dates in a specific range from partial dates in a column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Autofilling-a-list-of-dates-in-a-specific-range-from-partial/m-p/642770#M191797</link>
      <description>&lt;P&gt;try next code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have; 
input county $ date :mmddyy10. value1 value2 total;
format date mmddyy10.;
datalines;
CountyA 03/02/2020 2 0 2
CountyA 03/03/2020 3 1 4
CountyA 03/05/2020 5 2 7
CountyB 03/02/2020 1 0 1
CountyB 03/04/2020 4 1 5
CountyB 03/06/2020 2 1 3
	;
run;

proc sort data=have; by county date; run;

data want;
 set have;
  by county;
     array dayx d1-d6;
	 if first.county then do 1 to 6;
	    dayx(i) = .;
     end;
     if not last.county then do;
        if date &amp;lt; '01jun2020'd or
		   date &amp;gt; '06jun2020'd then output;
		else dayx(day(date)) = 1;
	end;
	if last.county then do;
	   if '01jun2020'd le date le '06jun2020'd
	   then dayx(day(date)) = 1;
	   output;
	   do i=1 to 6;
	      if dayx(i) = 0 then do;
		     valu1=0; valu2=0; value3=0;
			 date = mdy(6,i,2020);
			 output;
		  end;
		end;
	end;
run;

proc sort data=have; by county date; run;

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 24 Apr 2020 19:46:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Autofilling-a-list-of-dates-in-a-specific-range-from-partial/m-p/642770#M191797</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2020-04-24T19:46:37Z</dc:date>
    </item>
  </channel>
</rss>

