<?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: first and last date/time constraints in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/first-and-last-date-time-constraints/m-p/640050#M190537</link>
    <description>&lt;P&gt;Why is duration_final = 24 for the last observation with patientID = 111? This does not match the description.&lt;/P&gt;
&lt;P&gt;The log should contain syntax-errors for the lines 3-5 of your data-step. &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/235012"&gt;@kelxxx&lt;/a&gt; already explained the reason: a semicolon is required before "end;".&lt;/P&gt;
&lt;P&gt;Keeping do...end-blocks is highly recommended, properly formatted those blocks increase readability and help avoiding common mistakes, when adding another statement that should be executed conditionally.&lt;/P&gt;</description>
    <pubDate>Wed, 15 Apr 2020 09:45:52 GMT</pubDate>
    <dc:creator>andreas_lds</dc:creator>
    <dc:date>2020-04-15T09:45:52Z</dc:date>
    <item>
      <title>first and last date/time constraints</title>
      <link>https://communities.sas.com/t5/SAS-Programming/first-and-last-date-time-constraints/m-p/639927#M190443</link>
      <description>&lt;P&gt;Hi I have the following dataset. What I would like to do is FIRST instance and LAST INSTANCE per patient, I would like the duration to be the same. But for the middle, i would like to set up duration = 24.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="437"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="68"&gt;patientID&lt;/TD&gt;
&lt;TD width="36"&gt;time&lt;/TD&gt;
&lt;TD width="108"&gt;first_date_time&lt;/TD&gt;
&lt;TD width="111"&gt;stop_date_time&lt;/TD&gt;
&lt;TD width="63"&gt;duration&lt;/TD&gt;
&lt;TD width="51"&gt;weight&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;111&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1/2/2020 1:20&lt;/TD&gt;
&lt;TD&gt;1/2/2020 23:59&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;111&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1/3/2020 0:00&lt;/TD&gt;
&lt;TD&gt;1/3/2020 21:23&lt;/TD&gt;
&lt;TD&gt;21&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;111&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1/4/2020 2:00&lt;/TD&gt;
&lt;TD&gt;1/4/2020 18:18&lt;/TD&gt;
&lt;TD&gt;16&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;222&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2/1/2020 9:20&lt;/TD&gt;
&lt;TD&gt;2/1/2020 23:59&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;TD&gt;19&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;222&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2/2/2020 0:00&lt;/TD&gt;
&lt;TD&gt;2/2/2020 19:12&lt;/TD&gt;
&lt;TD&gt;19&lt;/TD&gt;
&lt;TD&gt;19&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;222&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2/3/2020 3:00&lt;/TD&gt;
&lt;TD&gt;2/3/2020 20:23&lt;/TD&gt;
&lt;TD&gt;17&lt;/TD&gt;
&lt;TD&gt;19&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;222&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2/4/2020 1:00&lt;/TD&gt;
&lt;TD&gt;2/4/2020 23:23&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;TD&gt;19&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This:&lt;/P&gt;
&lt;TABLE width="506"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="68"&gt;patientID&lt;/TD&gt;
&lt;TD width="36"&gt;time&lt;/TD&gt;
&lt;TD width="108"&gt;first_date_time&lt;/TD&gt;
&lt;TD width="111"&gt;stop_date_time&lt;/TD&gt;
&lt;TD width="63"&gt;duration&lt;/TD&gt;
&lt;TD width="51"&gt;weight&lt;/TD&gt;
&lt;TD width="69"&gt;duration_final&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;111&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1/2/2020 1:20&lt;/TD&gt;
&lt;TD&gt;1/2/2020 23:59&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;111&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;1/3/2020 0:00&lt;/TD&gt;
&lt;TD&gt;1/3/2020 21:23&lt;/TD&gt;
&lt;TD&gt;21&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;111&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1/4/2020 2:00&lt;/TD&gt;
&lt;TD&gt;1/4/2020 18:18&lt;/TD&gt;
&lt;TD&gt;16&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;222&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2/1/2020 9:20&lt;/TD&gt;
&lt;TD&gt;2/1/2020 23:59&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;TD&gt;19&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;222&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2/2/2020 0:00&lt;/TD&gt;
&lt;TD&gt;2/2/2020 19:12&lt;/TD&gt;
&lt;TD&gt;19&lt;/TD&gt;
&lt;TD&gt;19&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;222&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2/3/2020 3:00&lt;/TD&gt;
&lt;TD&gt;2/3/2020 20:23&lt;/TD&gt;
&lt;TD&gt;17&lt;/TD&gt;
&lt;TD&gt;19&lt;/TD&gt;
&lt;TD&gt;24&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;222&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;2/4/2020 1:00&lt;/TD&gt;
&lt;TD&gt;2/4/2020 23:23&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;TD&gt;19&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;It didnt work:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&amp;nbsp;set have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; by PatientID time;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if first. time then&amp;nbsp;&amp;nbsp;do;&amp;nbsp;&amp;nbsp; duration_final = duration&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; else&amp;nbsp;&amp;nbsp;if last. time then&amp;nbsp;&amp;nbsp; do;&amp;nbsp;&amp;nbsp;duration_final = duration end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; else&amp;nbsp;&amp;nbsp;do;&amp;nbsp;&amp;nbsp;duration_final = 24&amp;nbsp;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Wed, 15 Apr 2020 00:49:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/first-and-last-date-time-constraints/m-p/639927#M190443</guid>
      <dc:creator>monday89</dc:creator>
      <dc:date>2020-04-15T00:49:18Z</dc:date>
    </item>
    <item>
      <title>Re: first and last date/time constraints</title>
      <link>https://communities.sas.com/t5/SAS-Programming/first-and-last-date-time-constraints/m-p/639946#M190451</link>
      <description>&lt;P&gt;I would do the first. and last. indicators on patient ID instead of time.&lt;/P&gt;
&lt;PRE&gt;data want;
set have;
by patientID time;
if first.patientid or last.patientid then duration_final=duration;
else duration_final=24;
run;&lt;/PRE&gt;
&lt;P&gt;Also I would only do; and end; if I am performing multiple "then"s, in your case because you are only doing one "then" scenario, I don't see a need for it. KISS &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 15 Apr 2020 02:45:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/first-and-last-date-time-constraints/m-p/639946#M190451</guid>
      <dc:creator>sustagens</dc:creator>
      <dc:date>2020-04-15T02:45:27Z</dc:date>
    </item>
    <item>
      <title>Re: first and last date/time constraints</title>
      <link>https://communities.sas.com/t5/SAS-Programming/first-and-last-date-time-constraints/m-p/640029#M190518</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;It doesn't work because you forgot to put semicolons following the instructions (before end) and it must change&lt;/P&gt;&lt;P&gt;first.patient_id /last.patient_id instead of first.time / last.time&lt;/P&gt;&lt;P&gt;P/s: the loop "do...end" is not necessary if there is only one instruction. i think "by time" is not necessary too.&lt;/P&gt;&lt;P&gt;Have a nice day.&lt;/P&gt;</description>
      <pubDate>Wed, 15 Apr 2020 08:17:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/first-and-last-date-time-constraints/m-p/640029#M190518</guid>
      <dc:creator>kelxxx</dc:creator>
      <dc:date>2020-04-15T08:17:54Z</dc:date>
    </item>
    <item>
      <title>Re: first and last date/time constraints</title>
      <link>https://communities.sas.com/t5/SAS-Programming/first-and-last-date-time-constraints/m-p/640050#M190537</link>
      <description>&lt;P&gt;Why is duration_final = 24 for the last observation with patientID = 111? This does not match the description.&lt;/P&gt;
&lt;P&gt;The log should contain syntax-errors for the lines 3-5 of your data-step. &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/235012"&gt;@kelxxx&lt;/a&gt; already explained the reason: a semicolon is required before "end;".&lt;/P&gt;
&lt;P&gt;Keeping do...end-blocks is highly recommended, properly formatted those blocks increase readability and help avoiding common mistakes, when adding another statement that should be executed conditionally.&lt;/P&gt;</description>
      <pubDate>Wed, 15 Apr 2020 09:45:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/first-and-last-date-time-constraints/m-p/640050#M190537</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2020-04-15T09:45:52Z</dc:date>
    </item>
  </channel>
</rss>

