<?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 calculate the time intervals of Stockpiling Drugs in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/calculate-the-time-intervals-of-Stockpiling-Drugs/m-p/930773#M366187</link>
    <description>&lt;P&gt;for example, here is my data about people who use a drug X.&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;start_date&lt;/TD&gt;&lt;TD&gt;end_date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2020-01-10&lt;/TD&gt;&lt;TD&gt;2020-02-08&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2020-02-09&lt;/TD&gt;&lt;TD&gt;2020-03-09&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2020-03-01&lt;/TD&gt;&lt;TD&gt;2020-03-30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2021-05-07&lt;/TD&gt;&lt;TD&gt;2021-06-06&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2020-07-01&lt;/TD&gt;&lt;TD&gt;2020-07-30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2020-07-26&lt;/TD&gt;&lt;TD&gt;2020-08-24&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2020-08-15&lt;/TD&gt;&lt;TD&gt;2020-09-13&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2021-05-07&lt;/TD&gt;&lt;TD&gt;2021-06-06&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Assume&amp;nbsp; the supply for this drug is 30 days .&lt;/P&gt;&lt;P&gt;It is clear that there are days overlapped, in this case, I would like to add the overlapped days to the last end date for each time interval.&lt;/P&gt;&lt;P&gt;e.g. For 001, there are 9 days overlapped (2020-03-01 to 2020-03-09);&lt;/P&gt;&lt;P&gt;e.g. For 002, there are 5 days and 10 days overlapped;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I wish I could have a simple time interval including start to end, and plus overlapped days.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I want to see is a dataset like this:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;start_date&lt;/TD&gt;&lt;TD&gt;end_date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2020-01-10&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2020-04-07&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(2020-03-30 +9 days)&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2021-05-07&lt;/TD&gt;&lt;TD&gt;2021-06-06&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2020-07-01&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2020-09-27&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(2020-09-13 +5+10 days)&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2021-05-07&lt;/TD&gt;&lt;TD&gt;2021-06-06&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope I could get some help&lt;/P&gt;</description>
    <pubDate>Tue, 04 Jun 2024 08:09:19 GMT</pubDate>
    <dc:creator>scobaroy</dc:creator>
    <dc:date>2024-06-04T08:09:19Z</dc:date>
    <item>
      <title>calculate the time intervals of Stockpiling Drugs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculate-the-time-intervals-of-Stockpiling-Drugs/m-p/930773#M366187</link>
      <description>&lt;P&gt;for example, here is my data about people who use a drug X.&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;start_date&lt;/TD&gt;&lt;TD&gt;end_date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2020-01-10&lt;/TD&gt;&lt;TD&gt;2020-02-08&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2020-02-09&lt;/TD&gt;&lt;TD&gt;2020-03-09&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2020-03-01&lt;/TD&gt;&lt;TD&gt;2020-03-30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2021-05-07&lt;/TD&gt;&lt;TD&gt;2021-06-06&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2020-07-01&lt;/TD&gt;&lt;TD&gt;2020-07-30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2020-07-26&lt;/TD&gt;&lt;TD&gt;2020-08-24&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2020-08-15&lt;/TD&gt;&lt;TD&gt;2020-09-13&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2021-05-07&lt;/TD&gt;&lt;TD&gt;2021-06-06&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Assume&amp;nbsp; the supply for this drug is 30 days .&lt;/P&gt;&lt;P&gt;It is clear that there are days overlapped, in this case, I would like to add the overlapped days to the last end date for each time interval.&lt;/P&gt;&lt;P&gt;e.g. For 001, there are 9 days overlapped (2020-03-01 to 2020-03-09);&lt;/P&gt;&lt;P&gt;e.g. For 002, there are 5 days and 10 days overlapped;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I wish I could have a simple time interval including start to end, and plus overlapped days.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I want to see is a dataset like this:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;start_date&lt;/TD&gt;&lt;TD&gt;end_date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2020-01-10&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2020-04-07&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(2020-03-30 +9 days)&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001&lt;/TD&gt;&lt;TD&gt;2021-05-07&lt;/TD&gt;&lt;TD&gt;2021-06-06&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2020-07-01&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2020-09-27&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(2020-09-13 +5+10 days)&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;002&lt;/TD&gt;&lt;TD&gt;2021-05-07&lt;/TD&gt;&lt;TD&gt;2021-06-06&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope I could get some help&lt;/P&gt;</description>
      <pubDate>Tue, 04 Jun 2024 08:09:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculate-the-time-intervals-of-Stockpiling-Drugs/m-p/930773#M366187</guid>
      <dc:creator>scobaroy</dc:creator>
      <dc:date>2024-06-04T08:09:19Z</dc:date>
    </item>
    <item>
      <title>Re: calculate the time intervals of Stockpiling Drugs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculate-the-time-intervals-of-Stockpiling-Drugs/m-p/930828#M366214</link>
      <description>&lt;P&gt;Calculating the overlap of date/time intervals &lt;BR /&gt;By Leonid Batkhan on SAS Users January 13, 2022&lt;BR /&gt;&lt;A href="https://blogs.sas.com/content/sgf/2022/01/13/calculating-the-overlap-of-date-time-intervals/" target="_blank"&gt;https://blogs.sas.com/content/sgf/2022/01/13/calculating-the-overlap-of-date-time-intervals/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Koen&lt;/P&gt;</description>
      <pubDate>Tue, 04 Jun 2024 15:32:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculate-the-time-intervals-of-Stockpiling-Drugs/m-p/930828#M366214</guid>
      <dc:creator>sbxkoenk</dc:creator>
      <dc:date>2024-06-04T15:32:47Z</dc:date>
    </item>
    <item>
      <title>Re: calculate the time intervals of Stockpiling Drugs</title>
      <link>https://communities.sas.com/t5/SAS-Programming/calculate-the-time-intervals-of-Stockpiling-Drugs/m-p/930880#M366236</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs;
input ID $	(start_date	end_date) (:yymmdd10.);
format start_date	end_date yymmdd10.;
cards;
001	2020-01-10	2020-02-08
001	2020-02-09	2020-03-09
001	2020-03-01	2020-03-30
001	2021-05-07	2021-06-06
002	2020-07-01	2020-07-30
002	2020-07-26	2020-08-24
002	2020-08-15	2020-09-13
002	2021-05-07	2021-06-06
;
data temp;
 set have;
 do date=start_date to	end_date;
  output;
 end;
 format date yymmdd10.;
 keep id date;
run;
proc freq data=temp noprint;
table id*date/out=temp2 list;
run;
data temp3;
 set temp2;
 flag=ifn(count=1,1,0);
 keep id date flag;
run;
data temp4;
 set temp3;
 by id flag notsorted;
 if first.id  or dif(date) ne 1 then group1+1;
 if first.flag or dif(date) ne 1 then group2+1;
run;
proc sql;
create table temp5 as
select distinct group1,group2,id,flag,
 min(date) as start_date format=yymmdd10.,max(date) as end_date format=yymmdd10.,
 case when flag=0 then max(date)-min(date)+1 else . end as count
 from temp4
  group by group1,group2;

create table want as
select distinct group1,id,
 min(start_date) as start_date  format=yymmdd10.,sum(max(end_date),sum(count)-1) as end_date format=yymmdd10.
 from temp5 
  group by group1;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 05 Jun 2024 02:55:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/calculate-the-time-intervals-of-Stockpiling-Drugs/m-p/930880#M366236</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2024-06-05T02:55:53Z</dc:date>
    </item>
  </channel>
</rss>

