<?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: Create observations for unaccounted time intervals in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Create-observations-for-unaccounted-time-intervals/m-p/863161#M82586</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines dlm="," dsd truncover;
input ID $ date :ddmmyy10. (start_time end_time) (:ANYDTTME.) activity $30.;
format date ddmmyy10. start_time end_time time5.;
datalines;
1,03/01/2002,12:00 AM,6:00 AM,sleep
1,03/01/2002,6:00 AM,6:30 AM,eating
1,03/01/2002,7:30 AM,8:00 AM,riding in car 
1,03/01/2002,1:00 PM,2:00 PM,default minutes
1,03/01/2002,8:00 PM,11:59 PM,sleep
;

data want;
merge
  have
  have (firstobs=2 keep=id start_time rename=(id=_id start_time=_start));
;
output;
if id = _id and _start gt end_time
then do;
  start_time = end_time;
  end_time = _start;
  activity = "default minutes";
  output;
end;
drop _id _start;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;As you can see, I had to make assumptions about your data and use one of the dangerous "ANY" informats.&lt;/P&gt;
&lt;P&gt;You should avoid this by using a data step with DATALINES to present your data; we can then create an exact replica of your dataset(s) with a simple copy/paste and submit, without having to make guesses about attributes and content.&lt;/P&gt;</description>
    <pubDate>Thu, 09 Mar 2023 11:39:50 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2023-03-09T11:39:50Z</dc:date>
    <item>
      <title>Create observations for unaccounted time intervals</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Create-observations-for-unaccounted-time-intervals/m-p/863119#M82585</link>
      <description>&lt;P&gt;Hi! I need help with filling in missing time intervals to account for all minutes of the day starting from 12:00 AM to 11:59 PM.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Variables: ID date start_time end_time activity&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How do I fill in the missing time intervals with activity="default minutes" to include the end_time of the previous observation and the start_time of the following observation for a whole dataset? For example,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;ID date start_time end_time activity&lt;/P&gt;&lt;P&gt;1 03/01/2002 12:00 AM &amp;nbsp;6:00 AM sleep&lt;/P&gt;&lt;P&gt;1 03/01/2002 &amp;nbsp; 6:00 AM &amp;nbsp;6:30 AM eating&lt;/P&gt;&lt;P&gt;1 03/01/2002 &amp;nbsp; 7:30 AM &amp;nbsp;8:00 AM riding in car&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 03/01/2002 &amp;nbsp; 1:00 PM &amp;nbsp;2:00 PM default minutes&lt;/P&gt;&lt;P&gt;1 03/01/2002 &amp;nbsp; 8:00 PM &amp;nbsp;11:59 PM sleep&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I appreciate any help!!!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Mar 2023 03:18:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Create-observations-for-unaccounted-time-intervals/m-p/863119#M82585</guid>
      <dc:creator>abyyy</dc:creator>
      <dc:date>2023-03-09T03:18:13Z</dc:date>
    </item>
    <item>
      <title>Re: Create observations for unaccounted time intervals</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Create-observations-for-unaccounted-time-intervals/m-p/863161#M82586</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines dlm="," dsd truncover;
input ID $ date :ddmmyy10. (start_time end_time) (:ANYDTTME.) activity $30.;
format date ddmmyy10. start_time end_time time5.;
datalines;
1,03/01/2002,12:00 AM,6:00 AM,sleep
1,03/01/2002,6:00 AM,6:30 AM,eating
1,03/01/2002,7:30 AM,8:00 AM,riding in car 
1,03/01/2002,1:00 PM,2:00 PM,default minutes
1,03/01/2002,8:00 PM,11:59 PM,sleep
;

data want;
merge
  have
  have (firstobs=2 keep=id start_time rename=(id=_id start_time=_start));
;
output;
if id = _id and _start gt end_time
then do;
  start_time = end_time;
  end_time = _start;
  activity = "default minutes";
  output;
end;
drop _id _start;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;As you can see, I had to make assumptions about your data and use one of the dangerous "ANY" informats.&lt;/P&gt;
&lt;P&gt;You should avoid this by using a data step with DATALINES to present your data; we can then create an exact replica of your dataset(s) with a simple copy/paste and submit, without having to make guesses about attributes and content.&lt;/P&gt;</description>
      <pubDate>Thu, 09 Mar 2023 11:39:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Create-observations-for-unaccounted-time-intervals/m-p/863161#M82586</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2023-03-09T11:39:50Z</dc:date>
    </item>
    <item>
      <title>Re: Create observations for unaccounted time intervals</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Create-observations-for-unaccounted-time-intervals/m-p/863325#M82587</link>
      <description>Thank you so much!!! This worked out perfectly!!!</description>
      <pubDate>Fri, 10 Mar 2023 00:37:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Create-observations-for-unaccounted-time-intervals/m-p/863325#M82587</guid>
      <dc:creator>abyyy</dc:creator>
      <dc:date>2023-03-10T00:37:52Z</dc:date>
    </item>
  </channel>
</rss>

