<?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: avg last 7 dates in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/avg-last-7-dates/m-p/809049#M40598</link>
    <description>&lt;P&gt;If your data has gap in DATE .&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
   input Date :ddmmyy10.	total	  ;
   format date ddmmyy10.;
datalines;
19-04-2022	14	
18-04-2022	7	
17-04-2022	21	
16-04-2022	14	
15-04-2022	28	
14-04-2022	14	
13-04-2022	14	
12-04-2022	70	
11-04-2022	49	
10-04-2022	70	
09-04-2022	63	
08-04-2022	84	
07-04-2022	7	
06-04-2022	14	
05-04-2022	28	
04-04-2022	35	
03-04-2022	49	
02-04-2022	7	
01-04-2022	14	
31-03-2022	21	
30-03-2022	21	
29-03-2022	28	
28-03-2022	35	 
27-03-2022	42	 
26-03-2022	56	 
25-03-2022	56	 
24-03-2022	63	 
23-03-2022	72	 
;
proc sql;
create table want2 as
select *,case when 
(select count(*) from have where date between a.date-7 and a.date-1)=7 then
(select mean(total) from have where date between a.date-7 and a.date-1)
else . end as want
 from have as a;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Thu, 21 Apr 2022 13:10:41 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2022-04-21T13:10:41Z</dc:date>
    <item>
      <title>avg last 7 dates</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/avg-last-7-dates/m-p/808866#M40585</link>
      <description>&lt;P&gt;Hi to all, i hope you will be ok.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i need to calculate the average of last 7 days of my variable, like the next table.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;total&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;AVG&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;19-04-2022&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;18-04-2022&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 24,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;17-04-2022&lt;/TD&gt;&lt;TD&gt;21&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 30,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16-04-2022&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 37,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15-04-2022&lt;/TD&gt;&lt;TD&gt;28&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 44,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14-04-2022&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 52,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13-04-2022&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 51,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12-04-2022&lt;/TD&gt;&lt;TD&gt;70&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 51,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11-04-2022&lt;/TD&gt;&lt;TD&gt;49&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 45,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10-04-2022&lt;/TD&gt;&lt;TD&gt;70&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;09-04-2022&lt;/TD&gt;&lt;TD&gt;63&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;08-04-2022&lt;/TD&gt;&lt;TD&gt;84&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 32,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;07-04-2022&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;06-04-2022&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 24,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;05-04-2022&lt;/TD&gt;&lt;TD&gt;28&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 25,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;04-04-2022&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 25,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;03-04-2022&lt;/TD&gt;&lt;TD&gt;49&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 25,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;02-04-2022&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 24,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;01-04-2022&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31-03-2022&lt;/TD&gt;&lt;TD&gt;21&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 37,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30-03-2022&lt;/TD&gt;&lt;TD&gt;21&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 43,0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;29-03-2022&lt;/TD&gt;&lt;TD&gt;28&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50,3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;28-03-2022&lt;/TD&gt;&lt;TD&gt;35&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;27-03-2022&lt;/TD&gt;&lt;TD&gt;42&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;26-03-2022&lt;/TD&gt;&lt;TD&gt;56&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;25-03-2022&lt;/TD&gt;&lt;TD&gt;56&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;24-03-2022&lt;/TD&gt;&lt;TD&gt;63&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;23-03-2022&lt;/TD&gt;&lt;TD&gt;72&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;Thanks.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2022 16:21:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/avg-last-7-dates/m-p/808866#M40585</guid>
      <dc:creator>Andres_Fuentes1</dc:creator>
      <dc:date>2022-04-20T16:21:59Z</dc:date>
    </item>
    <item>
      <title>Re: avg last 7 dates</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/avg-last-7-dates/m-p/808877#M40586</link>
      <description>&lt;P&gt;Your data are sorted in descending date order, so you need a way to look ahead up to 6 observations ahead.&amp;nbsp; A self-merge with the "firstobs=" option can help:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want (drop=_:);
  merge have
        have(firstobs=2 keep=total rename=(total=_total2))
        have(firstobs=3 keep=total rename=(total=_total3))
        have(firstobs=4 keep=total rename=(total=_total4))
        have(firstobs=5 keep=total rename=(total=_total5))
        have(firstobs=6 keep=total rename=(total=_total6))
        have(firstobs=7 keep=total rename=(total=_total7));
  if n(total,of _total:)=7 then avg=mean(total,of _total:);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 20 Apr 2022 16:59:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/avg-last-7-dates/m-p/808877#M40586</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2022-04-20T16:59:17Z</dc:date>
    </item>
    <item>
      <title>Re: avg last 7 dates</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/avg-last-7-dates/m-p/808881#M40587</link>
      <description>&lt;P&gt;If you have PROC EXPAND, you can compute a moving average of N days&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Example of a 3 day moving average:&amp;nbsp;&lt;A href="https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.4/etsug/etsug_expand_examples04.htm" target="_blank" rel="noopener"&gt;https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.4/etsug/etsug_expand_examples04.htm&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2022 17:02:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/avg-last-7-dates/m-p/808881#M40587</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2022-04-20T17:02:11Z</dc:date>
    </item>
    <item>
      <title>Re: avg last 7 dates</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/avg-last-7-dates/m-p/808899#M40588</link>
      <description>&lt;P&gt;Note the data step that supplies example data that we can run. That really helps actually test code to see if it works.&lt;/P&gt;
&lt;P&gt;Old school: sort and use Lag function then resort.&lt;/P&gt;
&lt;PRE&gt;data have;
   input Date :ddmmyy10.	total	  ;
   format date ddmmyy10.;
datalines;
19-04-2022	14	
18-04-2022	7	
17-04-2022	21	
16-04-2022	14	
15-04-2022	28	
14-04-2022	14	
13-04-2022	14	
12-04-2022	70	
11-04-2022	49	
10-04-2022	70	
09-04-2022	63	
08-04-2022	84	
07-04-2022	7	
06-04-2022	14	
05-04-2022	28	
04-04-2022	35	
03-04-2022	49	
02-04-2022	7	
01-04-2022	14	
31-03-2022	21	
30-03-2022	21	
29-03-2022	28	
28-03-2022	35	 
27-03-2022	42	 
26-03-2022	56	 
25-03-2022	56	 
24-03-2022	63	 
23-03-2022	72	 
;

proc sort data=have;
   by date;
run;

data want;
   set have;
   L7=lag7(total);
   L6=lag6(total);
   L5=lag5(total);
   L4=lag4(total);
   L3=lag3(total);
   L2=lag2(total);
   L1=lag1(total);
   if not missing(L7) then Avg = mean(of L1-L7);
   drop L1-L7;
run;

proc sort data=want;
  by descending date;
run;&lt;/PRE&gt;
&lt;P&gt;IF you actually have more variables, such as ID that needs to be processed by the id values then any data step approach needs serious adjustments to handle the ID boundaries.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2022 17:49:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/avg-last-7-dates/m-p/808899#M40588</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2022-04-20T17:49:43Z</dc:date>
    </item>
    <item>
      <title>Re: avg last 7 dates</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/avg-last-7-dates/m-p/809049#M40598</link>
      <description>&lt;P&gt;If your data has gap in DATE .&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
   input Date :ddmmyy10.	total	  ;
   format date ddmmyy10.;
datalines;
19-04-2022	14	
18-04-2022	7	
17-04-2022	21	
16-04-2022	14	
15-04-2022	28	
14-04-2022	14	
13-04-2022	14	
12-04-2022	70	
11-04-2022	49	
10-04-2022	70	
09-04-2022	63	
08-04-2022	84	
07-04-2022	7	
06-04-2022	14	
05-04-2022	28	
04-04-2022	35	
03-04-2022	49	
02-04-2022	7	
01-04-2022	14	
31-03-2022	21	
30-03-2022	21	
29-03-2022	28	
28-03-2022	35	 
27-03-2022	42	 
26-03-2022	56	 
25-03-2022	56	 
24-03-2022	63	 
23-03-2022	72	 
;
proc sql;
create table want2 as
select *,case when 
(select count(*) from have where date between a.date-7 and a.date-1)=7 then
(select mean(total) from have where date between a.date-7 and a.date-1)
else . end as want
 from have as a;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 21 Apr 2022 13:10:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/avg-last-7-dates/m-p/809049#M40598</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2022-04-21T13:10:41Z</dc:date>
    </item>
  </channel>
</rss>

