<?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: categorize dates with gaps. in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/categorize-dates-with-gaps/m-p/885465#M349891</link>
    <description>&lt;P&gt;it worked, thank you &lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 19 Jul 2023 14:36:30 GMT</pubDate>
    <dc:creator>AbletMuhtar</dc:creator>
    <dc:date>2023-07-19T14:36:30Z</dc:date>
    <item>
      <title>categorize dates with gaps.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/categorize-dates-with-gaps/m-p/885340#M349834</link>
      <description>&lt;P&gt;Hello All,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I have a dataset containing dates with gaps, and my objective is to detect these gaps between the dates and subcategorize them&amp;nbsp;based on the continuity of each gap. Thanks.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;This is what i have:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Cat1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Cat2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AdmDt&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;A&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;01/01/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;A&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;01/02/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;A&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;1&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;01/03/2022&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/10/2022&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/11/2022&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/12/2022&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/01/2022&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/02/2022&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;This is what i want:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Cat1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Cat2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AdmDt&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Subcategory_id&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/01/2022&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/02/2022&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/03/2022&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/10/2022&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/11/2022&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/12/2022&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/01/2022&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;01/02/2022&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Tue, 18 Jul 2023 19:04:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/categorize-dates-with-gaps/m-p/885340#M349834</guid>
      <dc:creator>AbletMuhtar</dc:creator>
      <dc:date>2023-07-18T19:04:45Z</dc:date>
    </item>
    <item>
      <title>Re: categorize dates with gaps.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/categorize-dates-with-gaps/m-p/885342#M349835</link>
      <description>&lt;P&gt;Use DIF() and check if it's 1 and otherwise, reset the counter.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This assumes your dates are sorted and in order.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
by cat1 cat2 admdt;

retain subcategory_id;

date_dif =dif(admdt);

if first.cat1 then subcategory_id=1;
else if first.cat2 or date_dif ne 1 then subcategory_id + 1;

*drop date_dif;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 18 Jul 2023 19:15:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/categorize-dates-with-gaps/m-p/885342#M349835</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2023-07-18T19:15:32Z</dc:date>
    </item>
    <item>
      <title>Re: categorize dates with gaps.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/categorize-dates-with-gaps/m-p/885346#M349836</link>
      <description>&lt;P&gt;Hi.&amp;nbsp; I am not sure if this is what you are looking for, but consider the following:&lt;/P&gt;
&lt;P&gt;/* Create sample table*/&lt;BR /&gt;Data Example;&lt;BR /&gt;infile datalines dlm=',';&lt;BR /&gt;Input Cat1:$1. Cat2 :$1. AdmDt :mmddyy10.;&lt;BR /&gt;format admdt mmddyy10.;&lt;BR /&gt;datalines;&lt;BR /&gt;A,1,01/01/2022&lt;BR /&gt;A,1,01/02/2022&lt;BR /&gt;A,1,01/03/2022&lt;BR /&gt;A,1,01/10/2022&lt;BR /&gt;A,1,01/11/2022&lt;BR /&gt;A,1,01/12/2022&lt;BR /&gt;A,2,01/01/2022&lt;BR /&gt;A,2,01/02/2022&lt;BR /&gt;A,2,01/07/2022&lt;BR /&gt;;&lt;BR /&gt;run;&lt;BR /&gt;/*Sort table*/&lt;BR /&gt;proc sort data=example;&lt;BR /&gt;by Cat1 Cat2 AdmDt;&lt;BR /&gt;/* Use first., last. and lag to check values and assign a value to SubCat*/&lt;BR /&gt;Data Categorize;&lt;BR /&gt;set example;&lt;BR /&gt;by Cat1 Cat2 AdmDt;&lt;BR /&gt;Retain SubCat 0;&lt;BR /&gt;if first.cat2 then SubCat+1;&lt;BR /&gt;If not first.cat2 and admDt &amp;gt;sum(lag(Admdt)+1) then SubCat+1; &lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jul 2023 19:43:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/categorize-dates-with-gaps/m-p/885346#M349836</guid>
      <dc:creator>john_mccall</dc:creator>
      <dc:date>2023-07-18T19:43:03Z</dc:date>
    </item>
    <item>
      <title>Re: categorize dates with gaps.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/categorize-dates-with-gaps/m-p/885465#M349891</link>
      <description>&lt;P&gt;it worked, thank you &lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Jul 2023 14:36:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/categorize-dates-with-gaps/m-p/885465#M349891</guid>
      <dc:creator>AbletMuhtar</dc:creator>
      <dc:date>2023-07-19T14:36:30Z</dc:date>
    </item>
    <item>
      <title>Re: categorize dates with gaps.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/categorize-dates-with-gaps/m-p/885466#M349892</link>
      <description>&lt;P&gt;Thank you, it worked.&lt;span class="lia-unicode-emoji" title=":grinning_face:"&gt;😀&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Jul 2023 14:37:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/categorize-dates-with-gaps/m-p/885466#M349892</guid>
      <dc:creator>AbletMuhtar</dc:creator>
      <dc:date>2023-07-19T14:37:42Z</dc:date>
    </item>
  </channel>
</rss>

