<?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: Taking a mean within a datetime interval in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128352#M294555</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Did you try the Proc SQL solution?&amp;nbsp; It should average over 10 observations centred on the 10 second interval, ie rows from 5 sec to 14 sec will be returned for the 10 second value.&lt;/P&gt;&lt;P&gt;If you want rows 1 - 10 to be reported at the end of the interval, add 4 seconds to the timestamp.&lt;/P&gt;&lt;P&gt;If you want rows 0 -9 reported at the start of the interval, subtract 5 seconds from the timestamp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;eg&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px; background-color: #ffffff;"&gt;Select Round(time_stamp+4, 10) as time_stamp format = datetime&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px; background-color: #ffffff;"&gt;Richard&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 06 Sep 2013 00:50:34 GMT</pubDate>
    <dc:creator>RichardinOz</dc:creator>
    <dc:date>2013-09-06T00:50:34Z</dc:date>
    <item>
      <title>Taking a mean within a datetime interval</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128347#M294550</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm trying to calculate a mean temperature for each 10minute block of the hour. My data is formatted with a datetime column and a temperature column. Typically there is data every minute, although there are some missing values. This would seem to be very easy, but I haven't really been able to figure out datetime in SAS. Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example data - continues on for ~56,000 lines&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="214"&gt;&lt;TBODY&gt;&lt;TR style="height: 15.0pt;"&gt;&lt;TD class="xl65" height="20" style="height: 15.0pt; width: 113pt;" width="150"&gt;Time_Stamp&lt;/TD&gt;&lt;TD style="width: 48pt;" width="64"&gt;AvgTemp&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="height: 15.0pt;"&gt;&lt;TD align="right" class="xl66" height="20" style="height: 15.0pt;"&gt;10/07/2013 01:00:00&lt;/TD&gt;&lt;TD align="right"&gt;36.631&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="height: 15.0pt;"&gt;&lt;TD align="right" class="xl66" height="20" style="height: 15.0pt;"&gt;10/07/2013 01:01:00&lt;/TD&gt;&lt;TD align="right"&gt;36.632&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="height: 15.0pt;"&gt;&lt;TD align="right" class="xl66" height="20" style="height: 15.0pt;"&gt;10/07/2013 01:02:00&lt;/TD&gt;&lt;TD align="right"&gt;36.647&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="height: 15.0pt;"&gt;&lt;TD align="right" class="xl66" height="20" style="height: 15.0pt;"&gt;10/07/2013 01:03:00&lt;/TD&gt;&lt;TD align="right"&gt;36.659&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="height: 15.0pt;"&gt;&lt;TD align="right" class="xl66" height="20" style="height: 15.0pt;"&gt;10/07/2013 01:04:00&lt;/TD&gt;&lt;TD align="right"&gt;36.664&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 02:51:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128347#M294550</guid>
      <dc:creator>ctw</dc:creator>
      <dc:date>2013-09-04T02:51:51Z</dc:date>
    </item>
    <item>
      <title>Re: Taking a mean within a datetime interval</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128348#M294551</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&gt;Since datetime, behind the scenes, is a numeric variable (number of seconds since midnight 1 jan 1960) you can round the timestamp to the nearest 10 and do your average.&amp;nbsp; This is one such solution: you have not mentioned how you want the 10 seconds to be centered.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&gt;Proc SQL ;&lt;/P&gt;&lt;P style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create table want as&lt;/P&gt;&lt;P style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select Round(time_stamp, 10) as time_stamp format = datetime &lt;/P&gt;&lt;P style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&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; mean(Avgtemp) as AvgTemp format = 6.3&lt;/P&gt;&lt;P style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; From have&lt;/P&gt;&lt;P style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Group by 1&lt;/P&gt;&lt;P style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&gt;Quit ;&lt;/P&gt;&lt;P style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P style="color: #222222; font-family: arial, sans-serif; font-size: 13px; background-color: #ffffff;"&gt;Richard&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 03:15:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128348#M294551</guid>
      <dc:creator>RichardinOz</dc:creator>
      <dc:date>2013-09-04T03:15:02Z</dc:date>
    </item>
    <item>
      <title>Re: Taking a mean within a datetime interval</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128349#M294552</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I assume from your question that you are aware of how to calculate the mean and that your issue is purely the datetime.&amp;nbsp; The following should help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA HAVE;&lt;/P&gt;&lt;P&gt;INFILE DATALINES DLM=',';&lt;/P&gt;&lt;P&gt;INPUT TIME_STAMP AVGTEMP;&lt;/P&gt;&lt;P&gt;INFORMAT TIME_STAMP ANYDTDTM19.;&lt;/P&gt;&lt;P&gt;FORMAT TIME_STAMP DATETIME20.;&lt;/P&gt;&lt;P&gt;DATALINES;&lt;/P&gt;&lt;P&gt;10/07/2013 01:00:00,36.631&lt;/P&gt;&lt;P&gt;10/07/2013 01:01:00,36.632&lt;/P&gt;&lt;P&gt;10/07/2013 01:02:00,36.647&lt;/P&gt;&lt;P&gt;10/07/2013 01:03:00,36.659&lt;/P&gt;&lt;P&gt;10/07/2013 01:04:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:05:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:06:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:07:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:08:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:09:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:10:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:11:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:12:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:13:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:14:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:15:00,36.664&lt;/P&gt;&lt;P&gt;10/07/2013 01:16:00,36.664&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA WANT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SET HAVE;&lt;/P&gt;&lt;P&gt;&amp;nbsp; TIME_STAMP1 = INTNX('DTMINUTE10.',TIME_STAMP,0);&lt;/P&gt;&lt;P&gt;&amp;nbsp; FORMAT TIME_STAMP1 DATETIME20.;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 03:17:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128349#M294552</guid>
      <dc:creator>Scott_Mitchell</dc:creator>
      <dc:date>2013-09-04T03:17:18Z</dc:date>
    </item>
    <item>
      <title>Re: Taking a mean within a datetime interval</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128350#M294553</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Since I have been experimenting with HASH OBJECTS of late, I thought this might be a good time to get some feedback on my code on this question.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA _NULL_;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FORMAT TIME_STAMP1 DATETIME20.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DECLARE HASH HH (ORDERED:'YES');&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.DEFINEKEY ('TIME_STAMP1') ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.DEFINEDATA ('TIME_STAMP1','AVG_TEMP') ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.DEFINEDONE () ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp; DO UNTIL (DONE);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SET HAVE END=DONE;&lt;/P&gt;&lt;P&gt;&amp;nbsp; TIME_STAMP1 = INTNX('DTMINUTE10.',TIME_STAMP,0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; IF HH.FIND() ~= 0 THEN DO;&lt;/P&gt;&lt;P&gt;&amp;nbsp; COUNT&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SUMTEMP&amp;nbsp; = AVGTEMP;&lt;/P&gt;&lt;P&gt;&amp;nbsp; AVG_TEMP = SUMTEMP/COUNT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.ADD();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ELSE IF HH.FIND() = 0 THEN DO;&lt;/P&gt;&lt;P&gt;&amp;nbsp; COUNT+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SUMTEMP&amp;nbsp; = SUM(SUMTEMP,AVGTEMP);&lt;/P&gt;&lt;P&gt;&amp;nbsp; AVG_TEMP = SUMTEMP/COUNT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.REPLACE();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END;&lt;/P&gt;&lt;P&gt;&amp;nbsp; END;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.OUTPUT (DATASET: 'WANT') ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Sep 2013 04:56:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128350#M294553</guid>
      <dc:creator>Scott_Mitchell</dc:creator>
      <dc:date>2013-09-04T04:56:18Z</dc:date>
    </item>
    <item>
      <title>Re: Taking a mean within a datetime interval</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128351#M294554</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Scott,&lt;/P&gt;&lt;P&gt;Thanks - this is what I was looking for but it is not quite working and I can't figure out why (unfortunately I have no experience with either hash objects or proc SQL). For the first hour of data, this code ends up averaging the following "bins" of data: minutes 01-10, 11-19, 20-29, 30-39, 40-49, 50-59. The next hour is then 00-09, 10-20, 21-30, 31-40, 41-49, 50-59. So, in the first hour the 11-19 segment is averaging across 9 min instead of 10 and in the second hour the 10-20 segment is averaging across 11 min instead of 10 with the 41-49 segment averaging across 9 minutes again. Any Ideas on why this might be happening? Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Sep 2013 00:28:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128351#M294554</guid>
      <dc:creator>ctw</dc:creator>
      <dc:date>2013-09-06T00:28:39Z</dc:date>
    </item>
    <item>
      <title>Re: Taking a mean within a datetime interval</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128352#M294555</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Did you try the Proc SQL solution?&amp;nbsp; It should average over 10 observations centred on the 10 second interval, ie rows from 5 sec to 14 sec will be returned for the 10 second value.&lt;/P&gt;&lt;P&gt;If you want rows 1 - 10 to be reported at the end of the interval, add 4 seconds to the timestamp.&lt;/P&gt;&lt;P&gt;If you want rows 0 -9 reported at the start of the interval, subtract 5 seconds from the timestamp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;eg&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px; background-color: #ffffff;"&gt;Select Round(time_stamp+4, 10) as time_stamp format = datetime&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px; background-color: #ffffff;"&gt;Richard&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Sep 2013 00:50:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128352#M294555</guid>
      <dc:creator>RichardinOz</dc:creator>
      <dc:date>2013-09-06T00:50:34Z</dc:date>
    </item>
    <item>
      <title>Re: Taking a mean within a datetime interval</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128353#M294556</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi CTW,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ok, let's work through this together and see what we come up with.&amp;nbsp; I have created a larger sample of data with the following which transcends hours, using the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA HAVE;&lt;/P&gt;&lt;P&gt;INFILE DATALINES DLM=',';&lt;/P&gt;&lt;P&gt;INPUT TIME_STAMP;&lt;/P&gt;&lt;P&gt;INFORMAT TIME_STAMP ANYDTDTM19.;&lt;/P&gt;&lt;P&gt;FORMAT TIME_STAMP DATETIME20.;&lt;/P&gt;&lt;P&gt;AVGTEMP = RANUNI(0)*100;&lt;/P&gt;&lt;P&gt;DATALINES;&lt;/P&gt;&lt;P&gt;10/07/2013 01:00:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:01:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:02:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:03:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:04:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:05:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:06:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:07:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:08:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:09:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:10:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:11:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:12:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:13:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:14:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:15:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:16:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:17:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:18:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:19:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:20:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:21:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:22:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:23:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:24:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:25:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:26:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:27:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:28:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:29:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:30:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:31:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:32:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:33:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:34:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:35:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:36:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:37:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:38:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:39:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:40:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:41:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:42:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:43:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:44:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:45:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:46:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:47:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:48:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:49:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:50:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:51:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:52:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:53:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:54:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:55:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:56:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:57:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:58:00&lt;/P&gt;&lt;P&gt;10/07/2013 01:59:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:00:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:01:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:02:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:03:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:04:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:05:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:06:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:07:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:08:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:09:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:10:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:11:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:12:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:13:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:14:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:15:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:16:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:17:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:18:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:19:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:20:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:21:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:22:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:23:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:24:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:25:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:26:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:27:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:28:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:29:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:30:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:31:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:32:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:33:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:34:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:35:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:36:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:37:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:38:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:39:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:40:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:41:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:42:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:43:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:44:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:45:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:46:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:47:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:48:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:49:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:50:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:51:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:52:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:53:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:54:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:55:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:56:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:57:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:58:00&lt;/P&gt;&lt;P&gt;10/07/2013 02:59:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:00:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:01:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:02:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:03:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:04:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:05:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:06:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:07:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:08:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:09:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:10:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:11:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:12:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:13:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:14:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:15:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:16:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:17:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:18:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:19:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:20:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:21:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:22:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:23:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:24:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:25:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:26:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:27:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:28:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:29:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:30:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:31:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:32:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:33:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:34:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:35:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:36:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:37:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:38:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:39:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:40:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:41:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:42:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:43:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:44:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:45:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:46:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:47:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:48:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:49:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:50:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:51:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:52:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:53:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:54:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:55:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:56:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:57:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:58:00&lt;/P&gt;&lt;P&gt;10/07/2013 03:59:00&lt;/P&gt;&lt;P&gt;10/07/2013 04:00:00&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I then created the following which will display the ten minute intervals and associated TIME_STAMP values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA TEST;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SET HAVE;&lt;/P&gt;&lt;P&gt;&amp;nbsp; TIME_STAMP1 = INTNX('DTMINUTE10.',TIME_STAMP,0);&lt;/P&gt;&lt;P&gt;&amp;nbsp; FORMAT TIME_STAMP1 DATETIME20.;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this data set you should observe that each TIME_STAMP1 has 10 values, except 10JUL2013:04:00:00 having only 1 which is expected given the sample.&amp;nbsp; Looking closer at the data you should see that each grouping created by the INTNX function contains the ranges 00-09 10-19 20-29 30-39 40-49 50-59, regardless of the hour, therefore this doesn't appear to be the cause of the issue you are describing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Next I altered the code in the HASH OBJECT to allow us to see the number of records being matched by changing&amp;nbsp; HH.DEFINEDATA ('TIME_STAMP1','AVG_TEMP') ; to&amp;nbsp;&amp;nbsp; HH.DEFINEDATA ('TIME_STAMP1','AVG_TEMP','COUNT') ;&amp;nbsp; It is sort of like a keep statement and allows us to see the variable COUNT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA _NULL_;&lt;/P&gt;&lt;P&gt;&amp;nbsp; FORMAT TIME_STAMP1 DATETIME20.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DECLARE HASH HH (ORDERED:'YES');&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.DEFINEKEY ('TIME_STAMP1') ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.DEFINEDATA ('TIME_STAMP1','AVG_TEMP','COUNT') ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.DEFINEDONE () ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; DO UNTIL (DONE);&lt;/P&gt;&lt;P&gt;&amp;nbsp; SET HAVE END=DONE;&lt;/P&gt;&lt;P&gt;&amp;nbsp; TIME_STAMP1 = INTNX('DTMINUTE10.',TIME_STAMP,0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; IF HH.FIND() ~= 0 THEN DO;&lt;/P&gt;&lt;P&gt;&amp;nbsp; COUNT&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SUMTEMP&amp;nbsp; = AVGTEMP;&lt;/P&gt;&lt;P&gt;&amp;nbsp; AVG_TEMP = SUMTEMP/COUNT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.ADD();&lt;/P&gt;&lt;P&gt;&amp;nbsp; END;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ELSE IF HH.FIND() = 0 THEN DO;&lt;/P&gt;&lt;P&gt;&amp;nbsp; COUNT+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SUMTEMP&amp;nbsp; = SUM(SUMTEMP,AVGTEMP);&lt;/P&gt;&lt;P&gt;&amp;nbsp; AVG_TEMP = SUMTEMP/COUNT;&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.REPLACE();&lt;/P&gt;&lt;P&gt;&amp;nbsp; END;&lt;/P&gt;&lt;P&gt;&amp;nbsp; END;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; HH.OUTPUT (DATASET: 'WANT') ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The result shows that we have added or matched 10 records for each distinct TIME_STAMP1 which is what we expect.&amp;nbsp;&amp;nbsp; I then did a PROC SUMMARY on the TEST dataset we created previously and merged the results against the HASH TABLE output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC SUMMARY DATA = TEST NWAY MISSING;&lt;/P&gt;&lt;P&gt;&amp;nbsp; CLASS TIME_STAMP1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; VAR AVGTEMP;&lt;/P&gt;&lt;P&gt;&amp;nbsp; OUTPUT OUT = MEANS (DROP = _:) MEAN=;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA RECONCILE;&lt;/P&gt;&lt;P&gt;&amp;nbsp; MERGE WANT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; MEANS;&lt;/P&gt;&lt;P&gt;&amp;nbsp; BY TIME_STAMP1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; IF AVGTEMP=AVGTEMP THEN MATCH = 1;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I get matches in every instance, so I am not sure what the problem is on your end.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Perhaps use the method I have employed above on your dataset and see what outcomes it produces, otherwise post a sample of the data causing your problem and I will have a look at it for you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Scott&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Sep 2013 03:44:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128353#M294556</guid>
      <dc:creator>Scott_Mitchell</dc:creator>
      <dc:date>2013-09-06T03:44:46Z</dc:date>
    </item>
    <item>
      <title>Re: Taking a mean within a datetime interval</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128354#M294557</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Scott,&lt;/P&gt;&lt;P&gt;It seems the data import method I was using&amp;nbsp; "libname&amp;nbsp; xlsxfile "C:\Users\Z\Documents\DATA\file.xlsx";"&amp;nbsp; followed by a&lt;/P&gt;&lt;P&gt;data AGS;&lt;/P&gt;&lt;P&gt;set xlsxfile."Sheet1$"n(dbSASType=(Time_Stamp=datetime ));&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;run;was messing things up somehow. I haven't figured out how yet, but I'm guessing I occasionally get rounding error such that a point ends up in the next batch. Anyway, it wasn't an issue when I cut and pasted the data into SAS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Richard - I tried the SQL solution, but would receive an error message (22-32 expecting a format name) for the format = datetime line. I'm not sure if this is also associated with my import method.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Sep 2013 18:17:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128354#M294557</guid>
      <dc:creator>ctw</dc:creator>
      <dc:date>2013-09-19T18:17:00Z</dc:date>
    </item>
    <item>
      <title>Re: Taking a mean within a datetime interval</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128355#M294558</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It may be that Format = datetime is looking for a period at the end, i.e.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;format=datetime.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;as format names include the period to differentiate from varibles or functions.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Sep 2013 18:26:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Taking-a-mean-within-a-datetime-interval/m-p/128355#M294558</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2013-09-19T18:26:07Z</dc:date>
    </item>
  </channel>
</rss>

