<?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: how to get total previous 5 days dose by subject date ? in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647312#M22147</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13569"&gt;@DonH&lt;/a&gt;&amp;nbsp;... Thanks and fair enough ... but how do we qualify the variables that have no "intended usage" to begin with? For example, at times I use first._n_ and last._n_ as utility variables since the are perfectly fine numeric variables set to 0 at compile and auto-dropped from the output. Actually, first./last. can be attached in this manner to _error_, _iorc_ and any other variable. Even if it's &lt;EM&gt;not&lt;/EM&gt; in the PDV - and even if it is a non-scalar variable in the PDV! Watch this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_ ;                                                                                                                           
  dcl hash  h ;                                                                                                                         
  dcl hiter i ;                                                                                                                         
  put first.h= last.h= first.i= last.i= first.var= last.var= ;                                                                                               
run ;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;A curious thing is that though PUT shows all of them =0, you get the "unitialized" messages, too &lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt;. Looks as though the compiler sees no association of first.X / last.X with X at all unless X is part of BY - in which case, by the way, it sets them to 1. Proof:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_ ;                                                                                                                           
  put first.name= last.name= ;                                                                                                          
  stop ;                                                                                                                                
  set sashelp.class ;                                                                                                                   
  by name ;                                                                                                                             
run ; 
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Kind regards&lt;/P&gt;
&lt;P&gt;Paul D.&lt;/P&gt;</description>
    <pubDate>Wed, 13 May 2020 05:59:17 GMT</pubDate>
    <dc:creator>hashman</dc:creator>
    <dc:date>2020-05-13T05:59:17Z</dc:date>
    <item>
      <title>how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/646885#M22093</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to get sum of previous 5 days dose where flag="Y". I have multiple subjects in my data!&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;Subject&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Date&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Dose&lt;/TD&gt;&lt;TD&gt;Flag&lt;/TD&gt;&lt;TD&gt;New Dose&lt;/TD&gt;&lt;TD&gt;Lstdose&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;5/13/2017&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;101&lt;/TD&gt;&lt;TD&gt;5/14/2017&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;TD&gt;5/13/2017&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;5/15/2017&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;101&lt;/TD&gt;&lt;TD&gt;5/16/2017&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;120&lt;/TD&gt;&lt;TD&gt;5/13/2017&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;5/17/2017&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;101&lt;/TD&gt;&lt;TD&gt;5/18/2017&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;165&lt;/TD&gt;&lt;TD&gt;5/14/2017&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;5/19/2017&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;101&lt;/TD&gt;&lt;TD&gt;5/21/2017&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;101&lt;/TD&gt;&lt;TD&gt;5/25/2017&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;TD&gt;5/21/2017&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 11 May 2020 20:59:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/646885#M22093</guid>
      <dc:creator>kk26</dc:creator>
      <dc:date>2020-05-11T20:59:49Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/646891#M22094</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
infile cards truncover;
input Subject Date :mmddyy10. Dose 	Flag $;*	New Dose	Lstdose;
format date mmddyy10.;
cards;
101	5/13/2017	30	 	 	 
101	5/14/2017	30	Y	60	5/13/2017
101	5/15/2017	30	 	 	 
101	5/16/2017	30	Y	120	5/13/2017
101	5/17/2017	30	 	 	 
101	5/18/2017	45	Y	165	5/14/2017
101	5/19/2017	45	 	 	 
101	5/21/2017	45	 	 	 
101	5/25/2017	45	Y	90	5/21/2017
;

data want;
 if _n_=1 then do;
  dcl hash H (ordered:'y') ;
  h.definekey  ("_date") ;
  h.definedata ("_date","_dose") ;
  h.definedone () ;
  dcl hiter hi('h');
 end;
 do _n_=h.clear() by 0 until(last.subject);
  set have;
  by subject;
  _date=date;
  _dose=dose;
  h.add();
  if flag='Y' then do;
   do while(hi.next()=0);
    if intnx('day',date,-4)&amp;lt;=_date&amp;lt;=date then do;
     new_dose=sum(new_dose,_dose);
     Lstdose=min(Lstdose,_date);
    end;
   end;
   output;
   call missing(new_dose,lstdose);
  end;
  else output;
 end;
 format lstdose mmddyy10.;
 drop _:;
run;

proc print noobs;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="r header" scope="col"&gt;Subject&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;Date&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;Dose&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;Flag&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;new_dose&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;Lstdose&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/13/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;30&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/14/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;30&lt;/TD&gt;
&lt;TD class="l data"&gt;Y&lt;/TD&gt;
&lt;TD class="r data"&gt;60&lt;/TD&gt;
&lt;TD class="r data"&gt;05/13/2017&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/15/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;30&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/16/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;30&lt;/TD&gt;
&lt;TD class="l data"&gt;Y&lt;/TD&gt;
&lt;TD class="r data"&gt;120&lt;/TD&gt;
&lt;TD class="r data"&gt;05/13/2017&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/17/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;30&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/18/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;45&lt;/TD&gt;
&lt;TD class="l data"&gt;Y&lt;/TD&gt;
&lt;TD class="r data"&gt;165&lt;/TD&gt;
&lt;TD class="r data"&gt;05/14/2017&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/19/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;45&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/21/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;45&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/25/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;45&lt;/TD&gt;
&lt;TD class="l data"&gt;Y&lt;/TD&gt;
&lt;TD class="r data"&gt;90&lt;/TD&gt;
&lt;TD class="r data"&gt;05/21/2017&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 11 May 2020 21:39:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/646891#M22094</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-11T21:39:43Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/646895#M22095</link>
      <description>&lt;P&gt;Proc SQL readymeals solution:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data have;
infile cards truncover;
input Subject Date :mmddyy10. Dose 	Flag $;*	New Dose	Lstdose;
format date mmddyy10.;
cards;
101	5/13/2017	30	 	 	 
101	5/14/2017	30	Y	60	5/13/2017
101	5/15/2017	30	 	 	 
101	5/16/2017	30	Y	120	5/13/2017
101	5/17/2017	30	 	 	 
101	5/18/2017	45	Y	165	5/14/2017
101	5/19/2017	45	 	 	 
101	5/21/2017	45	 	 	 
101	5/25/2017	45	Y	90	5/21/2017
;
proc sql;
create table want as
select a.*,sum(b.dose) as new_dose,min(b.date) as Lstdose format=mmddyy10.
from have a left join have b
on a.subject=b.subject and intnx('day',a.date,-4)&amp;lt;=b.date&amp;lt;=a.date and a.flag='Y'
group by a.subject, a.date,a.dose,a.flag;
quit;
proc print noobs;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="r header" scope="col"&gt;Subject&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;Date&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;Dose&lt;/TH&gt;
&lt;TH class="l header" scope="col"&gt;Flag&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;new_dose&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;Lstdose&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/13/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;30&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/14/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;30&lt;/TD&gt;
&lt;TD class="l data"&gt;Y&lt;/TD&gt;
&lt;TD class="r data"&gt;60&lt;/TD&gt;
&lt;TD class="r data"&gt;05/13/2017&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/15/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;30&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/16/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;30&lt;/TD&gt;
&lt;TD class="l data"&gt;Y&lt;/TD&gt;
&lt;TD class="r data"&gt;120&lt;/TD&gt;
&lt;TD class="r data"&gt;05/13/2017&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/17/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;30&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/18/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;45&lt;/TD&gt;
&lt;TD class="l data"&gt;Y&lt;/TD&gt;
&lt;TD class="r data"&gt;165&lt;/TD&gt;
&lt;TD class="r data"&gt;05/14/2017&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/19/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;45&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/21/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;45&lt;/TD&gt;
&lt;TD class="l data"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;TD class="r data"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="r data"&gt;101&lt;/TD&gt;
&lt;TD class="r data"&gt;05/25/2017&lt;/TD&gt;
&lt;TD class="r data"&gt;45&lt;/TD&gt;
&lt;TD class="l data"&gt;Y&lt;/TD&gt;
&lt;TD class="r data"&gt;90&lt;/TD&gt;
&lt;TD class="r data"&gt;05/21/2017&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 11 May 2020 21:56:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/646895#M22095</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-11T21:56:43Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/646900#M22096</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;I am getting perfect result but do not understand code below , i have never seen such&amp;nbsp; programming. would you please explain why do we need to use this code below and what it does ?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE class="language-sas"&gt;&lt;CODE&gt;  dcl hash H (ordered:'y') ;
  h.definekey  ("_date") ;
  h.definedata ("_date","_dose") ;
  h.definedone () ;
  dcl hiter hi('h');&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 11 May 2020 22:27:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/646900#M22096</guid>
      <dc:creator>kk26</dc:creator>
      <dc:date>2020-05-11T22:27:31Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/646901#M22097</link>
      <description>&lt;P&gt;Hi &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/263529"&gt;@kk26&lt;/a&gt;&amp;nbsp; About to catch the bus to get home. I will respond to you with some details perhaps if I could login from home tonight or soon as I could tomorrow. [Eastern time]&lt;/P&gt;</description>
      <pubDate>Mon, 11 May 2020 22:34:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/646901#M22097</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-11T22:34:22Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647080#M22118</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/263529"&gt;@kk26&lt;/a&gt;&amp;nbsp;,Basically the solution utilizes a programming construct called Hash data structure. A lot of times this structure is considered a LOOK UP memory table however for some folks like me who are Hash enthusiasts, we tend to explore the possibilities beyond what's in the documentation.&amp;nbsp; Of course it requires enthusiasm and interest and a lot of reading to get to a level of comfort where you are at a place or point you begin to feel as the requirement narrates to your mind, the code is in the fingers.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The logic that I am using here is:&lt;/P&gt;
&lt;P&gt;1. Use a Hash table to populate the records that satisfies the condition flag='Y' and the dates that fall within the 5 day intervals&lt;/P&gt;
&lt;P&gt;2. Roll up the contents of the hash table and summarize.&lt;/P&gt;
&lt;P&gt;3. Clear/Free up the memory once processing for a By Group is complete.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That's as simple as that.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I follow the footsteps of Guru&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/21262"&gt;@hashman&lt;/a&gt;&amp;nbsp;who is the coauthor of the book&lt;EM&gt;&lt;STRONG&gt; "Data Management Solutions Using SAS&lt;SUP&gt;®&lt;/SUP&gt;&amp;nbsp;Hash Table Operations: A Business Intelligence Case Study"&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;along with Guru&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13569"&gt;@DonH&lt;/a&gt;. I owe much of learning/gratitude to Paul D for offering his priceless knowledge both offline/online. I am lucky eh?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I highly encourage you to read that book if you are interested in elevating your sas programming skills. SAS press may offer some discounts. Please check with&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/56097"&gt;@Sian&lt;/a&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2020 14:06:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647080#M22118</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-12T14:06:51Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647110#M22119</link>
      <description>Thank you &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt; !</description>
      <pubDate>Tue, 12 May 2020 14:39:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647110#M22119</guid>
      <dc:creator>kk26</dc:creator>
      <dc:date>2020-05-12T14:39:52Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647140#M22122</link>
      <description>&lt;P&gt;Hi &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;:&amp;nbsp;&lt;STRONG&gt;do _n_ = h.clear() by 0&lt;/STRONG&gt;, eh? I kind of recognize the style - David Cassell calls it a "dorfmanism" - but it's never occurred to Dorfman himself to use it in this manner. Kudos!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kind regards&lt;/P&gt;
&lt;P&gt;Paul D.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2020 15:57:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647140#M22122</guid>
      <dc:creator>hashman</dc:creator>
      <dc:date>2020-05-12T15:57:00Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647141#M22123</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;: Yup, that's the logic, to a tee.&lt;/P&gt;
&lt;P&gt;Thanks for another plug!&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kind regards&lt;/P&gt;
&lt;P&gt;Paul D.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2020 15:59:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647141#M22123</guid>
      <dc:creator>hashman</dc:creator>
      <dc:date>2020-05-12T15:59:49Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647144#M22125</link>
      <description>&lt;P&gt;Guru&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/21262"&gt;@hashman&lt;/a&gt;&amp;nbsp; Turn on your sense of humor. As much as I shamelessly admit that I copy you, I must also say you are getting old &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; hahaha. Let me be nice for a change- not old but more wise.I am sure you are aware I am not dumb enough to just read your posts/books/papers, however trust me I do take &lt;STRONG&gt;notes&lt;/STRONG&gt; for future use.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Btw, It's been a while. I sent you a courtesy touch base text message and didn't get any reply. I hope all's well with you and family? Things are beginning to get better at CT, and at work we are encountering a lot of Forbearance requests/planning to mitigate trouble debt/foreclosure across mortgage product lines.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PS Pass on my regards to your family. My mother also wanted to send you &amp;amp; your family her regards. Take care and stay safe!&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2020 16:09:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647144#M22125</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-12T16:09:56Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647273#M22138</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;.&lt;/P&gt;
&lt;P&gt;Based on a quick look, it appears you have covered all the bases.&lt;/P&gt;
&lt;P&gt;I would like to add that&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/21262"&gt;@hashman&lt;/a&gt;&amp;nbsp;and I were scheduled to present a Sunday morning tutorial at SGF2020. That obviously never happened.&lt;/P&gt;
&lt;P&gt;But the good news is that our tutorial was selected to be one of the virtual presentations that will be made available to everyone.&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/21262"&gt;@hashman&lt;/a&gt;&amp;nbsp;and I are working on our recordings of the bits and pieces which the SAS folks will stitch together. It is scheduled to be released as part of what is being referred to as &lt;EM&gt;Season 3&lt;/EM&gt;.&lt;BR /&gt;Our presentation will be largely based on content from our book and we hope to cover a lot of ground.&lt;/P&gt;</description>
      <pubDate>Wed, 13 May 2020 00:24:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647273#M22138</guid>
      <dc:creator>DonH</dc:creator>
      <dc:date>2020-05-13T00:24:27Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647275#M22140</link>
      <description>&lt;P&gt;Anything that uses _n_ or _error_ or many of the other automatic variables for something other than their intended usage qualifies, by definition, as a &lt;EM&gt;Dorfmanism&lt;/EM&gt;.&lt;/P&gt;</description>
      <pubDate>Wed, 13 May 2020 00:28:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647275#M22140</guid>
      <dc:creator>DonH</dc:creator>
      <dc:date>2020-05-13T00:28:21Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647312#M22147</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13569"&gt;@DonH&lt;/a&gt;&amp;nbsp;... Thanks and fair enough ... but how do we qualify the variables that have no "intended usage" to begin with? For example, at times I use first._n_ and last._n_ as utility variables since the are perfectly fine numeric variables set to 0 at compile and auto-dropped from the output. Actually, first./last. can be attached in this manner to _error_, _iorc_ and any other variable. Even if it's &lt;EM&gt;not&lt;/EM&gt; in the PDV - and even if it is a non-scalar variable in the PDV! Watch this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_ ;                                                                                                                           
  dcl hash  h ;                                                                                                                         
  dcl hiter i ;                                                                                                                         
  put first.h= last.h= first.i= last.i= first.var= last.var= ;                                                                                               
run ;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;A curious thing is that though PUT shows all of them =0, you get the "unitialized" messages, too &lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt;. Looks as though the compiler sees no association of first.X / last.X with X at all unless X is part of BY - in which case, by the way, it sets them to 1. Proof:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_ ;                                                                                                                           
  put first.name= last.name= ;                                                                                                          
  stop ;                                                                                                                                
  set sashelp.class ;                                                                                                                   
  by name ;                                                                                                                             
run ; 
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Kind regards&lt;/P&gt;
&lt;P&gt;Paul D.&lt;/P&gt;</description>
      <pubDate>Wed, 13 May 2020 05:59:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647312#M22147</guid>
      <dc:creator>hashman</dc:creator>
      <dc:date>2020-05-13T05:59:17Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647544#M22161</link>
      <description>hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;is there any way to check if the dose has been changed at any time between lstdose date and current date where flag="Y" using same code ?&lt;BR /&gt;for example :&lt;BR /&gt;on 05/18/2017 dose is 45 and on 05/14/2017 the dose was 30. so dose has been changed from starting 30 to 45.&lt;BR /&gt;&lt;BR /&gt;Thank you much in advance ! you are being a great help !</description>
      <pubDate>Wed, 13 May 2020 17:26:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647544#M22161</guid>
      <dc:creator>kk26</dc:creator>
      <dc:date>2020-05-13T17:26:31Z</dc:date>
    </item>
    <item>
      <title>Re: how to get total previous 5 days dose by subject date ?</title>
      <link>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647562#M22165</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/263529"&gt;@kk26&lt;/a&gt;&amp;nbsp; Do you mean something like this for your result to look like? I added a check_flag to the result&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data want;
 if _n_=1 then do;
  dcl hash H (ordered:'y') ;
  h.definekey  ("_date") ;
  h.definedata ("_date","_dose") ;
  h.definedone () ;
  dcl hiter hi('h');
 end;
 do _n_=h.clear() by 0 until(last.subject);
  set have;
  by subject;
  _date=date;
  _dose=dose;
  h.add();
  if __dose&amp;gt;. and __dose ne dose then Check_flag=1;
  if flag='Y' then do;
   do while(hi.next()=0);
    if intnx('day',date,-4)&amp;lt;=_date&amp;lt;=date then do;
     new_dose=sum(new_dose,_dose);
     Lstdose=min(Lstdose,_date);
    end;
   end;
   output;
   Check_flag=.;
   __dose=dose;
   call missing(new_dose,lstdose);
  end;
  else output;
 end;
 format lstdose mmddyy10.;
 drop _:;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 13 May 2020 18:03:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/how-to-get-total-previous-5-days-dose-by-subject-date/m-p/647562#M22165</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-05-13T18:03:03Z</dc:date>
    </item>
  </channel>
</rss>

