<?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: dealing with two time constraints in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/dealing-with-two-time-constraints/m-p/629115#M186000</link>
    <description>&lt;P&gt;Thanks. This worked!!&lt;/P&gt;</description>
    <pubDate>Tue, 03 Mar 2020 13:36:09 GMT</pubDate>
    <dc:creator>monday89</dc:creator>
    <dc:date>2020-03-03T13:36:09Z</dc:date>
    <item>
      <title>dealing with two time constraints</title>
      <link>https://communities.sas.com/t5/SAS-Programming/dealing-with-two-time-constraints/m-p/629111#M185998</link>
      <description>&lt;P&gt;I have the following dataset&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="272"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;id&lt;/TD&gt;
&lt;TD width="104"&gt;time_start&lt;/TD&gt;
&lt;TD width="104"&gt;time_stop&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;12/4/2019 11:21&lt;/TD&gt;
&lt;TD&gt;12/4/2019 21:12&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;12/4/2019 11:21&lt;/TD&gt;
&lt;TD&gt;
&lt;P&gt;12/4/2019 23:59&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What I want to do is for ANY two same time_start, I would like to assign previous time_stop but keep rest the same.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;something like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="272"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;id&lt;/TD&gt;
&lt;TD width="104"&gt;time_one&lt;/TD&gt;
&lt;TD width="104"&gt;time_two&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;12/4/2019 11:21&lt;/TD&gt;
&lt;TD&gt;12/4/2019 21:12&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;12/4/2019 21:12&lt;/TD&gt;
&lt;TD&gt;12/4/2019 23:59&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; work.test2;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge work.test&lt;/P&gt;
&lt;P&gt;work.test(keep=id time_start &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;firstobs=&lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&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;&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;&amp;nbsp; &amp;nbsp; rename=(id=_id time_start=_start_date));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; format new_stop_date datetime20.;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if id=_id and _start_date &amp;lt; time_stop&lt;/P&gt;
&lt;P&gt;then new_stop_date=_start_date;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else new_stop_date=time_stop;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rename time_start=new_start_date;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop time_stop _:;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;</description>
      <pubDate>Tue, 03 Mar 2020 13:19:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/dealing-with-two-time-constraints/m-p/629111#M185998</guid>
      <dc:creator>monday89</dc:creator>
      <dc:date>2020-03-03T13:19:37Z</dc:date>
    </item>
    <item>
      <title>Re: dealing with two time constraints</title>
      <link>https://communities.sas.com/t5/SAS-Programming/dealing-with-two-time-constraints/m-p/629114#M185999</link>
      <description>&lt;P&gt;Something like this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input id time_start :e8601dt16. time_stop :e8601dt16.;
format time_start time_stop e8601dt16.;
datalines;
1 2019-04-12T11:21 2019-04-12T21:12
1 2019-04-12T11:21 2019-04-12T23:59
;

data want;
set have;
by id;
lts = lag(time_stop);
if not first.id and lts &amp;gt; time_start then time_start = lts;
drop lts;
run;

proc print data=want noobs;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;PRE&gt;id    time_start          time_stop

 1    2019-04-12T11:21    2019-04-12T21:12
 1    2019-04-12T21:12    2019-04-12T23:59
&lt;/PRE&gt;</description>
      <pubDate>Tue, 03 Mar 2020 13:31:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/dealing-with-two-time-constraints/m-p/629114#M185999</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-03-03T13:31:05Z</dc:date>
    </item>
    <item>
      <title>Re: dealing with two time constraints</title>
      <link>https://communities.sas.com/t5/SAS-Programming/dealing-with-two-time-constraints/m-p/629115#M186000</link>
      <description>&lt;P&gt;Thanks. This worked!!&lt;/P&gt;</description>
      <pubDate>Tue, 03 Mar 2020 13:36:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/dealing-with-two-time-constraints/m-p/629115#M186000</guid>
      <dc:creator>monday89</dc:creator>
      <dc:date>2020-03-03T13:36:09Z</dc:date>
    </item>
  </channel>
</rss>

