<?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: Grouping dates in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479134#M71444</link>
    <description>&lt;P&gt;You're running into trouble because you are treating DateOfInitDx1 as if it's a date.&amp;nbsp; But it's not ... it's a date-time.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Inside the DO group, add this statement first:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;just_the_date = datepart(DateOfInitDx1);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then use that new variable instead of DateOfInitDx1 in all of your comparisons.&lt;/P&gt;</description>
    <pubDate>Wed, 18 Jul 2018 16:45:12 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2018-07-18T16:45:12Z</dc:date>
    <item>
      <title>Grouping dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479125#M71442</link>
      <description>&lt;P&gt;I am trying to group dates by every ~5 years (basically creating dummy variables), but my code is not working correctly. Please help. Code is below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Data practice; SET merge_temp6;
IF NOT MISSING(DateOfInitDx1) THEN DO;
	IF DateOfInitDx1 &amp;lt;= '31DEC2005'D then date_up_to_2005 = 1; ELSE date_up_to_2005 = 0;
	IF DateOfInitDx1 &amp;gt;= '01JAN2006'D AND DateOfInitDx1 &amp;lt;= '31DEC2010'D then date_up_to_2010 = 1;
	ELSE date_up_to_2010 = 0;
	IF DateOfInitDx1 &amp;gt;= '01JAN2011'D then date_up_to_2016 = 1; ELSE date_up_to_2016 = 0;
END;
KEEP DateOfInitDx1 date_up_to_2005 date_up_to_2010 date_up_to_2016;
RUN;&lt;/PRE&gt;&lt;P&gt;Here is the output I get, which is incorrect:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class="branch"&gt;&lt;DIV align="center"&gt;DateOfInitDx1 date_up_to_2005 date_up_to_2010 date_up_to_2016 &lt;TABLE cellspacing="0" cellpadding="5"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;14JUN2012:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;24APR2008:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;07JAN2011:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;25JUN2001:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;19JUL2012:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;02AUG2011:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14JUN2016:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16SEP2010:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;21JUN2004:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is what I want:&lt;/P&gt;&lt;P&gt;SAS Output&lt;/P&gt;&lt;DIV class="branch"&gt;&lt;DIV align="center"&gt;DateOfInitDx1 date_up_to_2005 date_up_to_2010 date_up_to_2016 &lt;TABLE cellspacing="0" cellpadding="5"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;14JUN2012:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;24APR2008:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;07JAN2011:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;25JUN2001:00:00:00&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;19JUL2012:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;02AUG2011:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14JUN2016:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16SEP2010:00:00:00&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;21JUN2004:00:00:00&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="branch"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Wed, 18 Jul 2018 16:20:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479125#M71442</guid>
      <dc:creator>lady8506</dc:creator>
      <dc:date>2018-07-18T16:20:16Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479133#M71443</link>
      <description>&lt;P&gt;You have DATETIME variables but you're treating them as DATES&amp;nbsp;with the comparison.&lt;/P&gt;
&lt;P&gt;Use DATEPART() function to get just the dates and then use YEAR() to get the years. It makes your comparison a lot simpler:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data practice;
set merge_temp6;

Year_Init_Diag = year(datepart(dateofInitDX1));

date_2005=0; date_2010=0; date_2016=0; 

if year &amp;lt;= 2005 the date_2005 =1;
else if year &amp;lt;= 2010 then date_2010 =1;
else if year &amp;lt;=2016 then date_2016=1;

run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/131693"&gt;@lady8506&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I am trying to group dates by every ~5 years (basically creating dummy variables), but my code is not working correctly. Please help. Code is below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Data practice; SET merge_temp6;
IF NOT MISSING(DateOfInitDx1) THEN DO;
	IF DateOfInitDx1 &amp;lt;= '31DEC2005'D then date_up_to_2005 = 1; ELSE date_up_to_2005 = 0;
	IF DateOfInitDx1 &amp;gt;= '01JAN2006'D AND DateOfInitDx1 &amp;lt;= '31DEC2010'D then date_up_to_2010 = 1;
	ELSE date_up_to_2010 = 0;
	IF DateOfInitDx1 &amp;gt;= '01JAN2011'D then date_up_to_2016 = 1; ELSE date_up_to_2016 = 0;
END;
KEEP DateOfInitDx1 date_up_to_2005 date_up_to_2010 date_up_to_2016;
RUN;&lt;/PRE&gt;
&lt;P&gt;Here is the output I get, which is incorrect:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="branch"&gt;
&lt;DIV align="center"&gt;DateOfInitDx1 date_up_to_2005 date_up_to_2010 date_up_to_2016
&lt;TABLE cellspacing="0" cellpadding="5"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;14JUN2012:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;24APR2008:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;07JAN2011:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;25JUN2001:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;19JUL2012:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;02AUG2011:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;14JUN2016:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;16SEP2010:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;21JUN2004:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is what I want:&lt;/P&gt;
&lt;P&gt;SAS Output&lt;/P&gt;
&lt;DIV class="branch"&gt;
&lt;DIV align="center"&gt;DateOfInitDx1 date_up_to_2005 date_up_to_2010 date_up_to_2016
&lt;TABLE cellspacing="0" cellpadding="5"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;14JUN2012:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;24APR2008:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;07JAN2011:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;25JUN2001:00:00:00&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;19JUL2012:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;02AUG2011:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;14JUN2016:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;16SEP2010:00:00:00&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;21JUN2004:00:00:00&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="branch"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Jul 2018 16:45:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479133#M71443</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-07-18T16:45:07Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479134#M71444</link>
      <description>&lt;P&gt;You're running into trouble because you are treating DateOfInitDx1 as if it's a date.&amp;nbsp; But it's not ... it's a date-time.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Inside the DO group, add this statement first:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;just_the_date = datepart(DateOfInitDx1);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then use that new variable instead of DateOfInitDx1 in all of your comparisons.&lt;/P&gt;</description>
      <pubDate>Wed, 18 Jul 2018 16:45:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479134#M71444</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-07-18T16:45:12Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479135#M71445</link>
      <description>&lt;P&gt;Use formats&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc format;
    value datef low-'31DEC2005'd = 'Up to 2005'
         '01JAN2006'd-'31DEC2010'd = '2006-2010'
         ...    /* You do the rest of the typing */
    ;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 18 Jul 2018 16:47:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479135#M71445</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2018-07-18T16:47:05Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479144#M71446</link>
      <description>&lt;P&gt;Thank you. With your suggestion I was able to get it to work using the following code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Data practice; SET merge_temp6;
IF NOT MISSING(DateOfInitDx1) THEN DO;
	just_the_date = year(datepart(DateOfInitDx1));
	IF just_the_date &amp;lt;= '2005' then date_up_to_2005 = 1; ELSE date_up_to_2005 = 0;
	IF just_the_date &amp;gt;= '2006' AND just_the_date &amp;lt;= '2010' then date_up_to_2010 = 1;
	ELSE date_up_to_2010 = 0;
	IF just_the_date &amp;gt;= '2011' then date_up_to_2016 = 1; ELSE date_up_to_2016 = 0;
END;
RUN;&lt;/PRE&gt;</description>
      <pubDate>Wed, 18 Jul 2018 16:59:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479144#M71446</guid>
      <dc:creator>lady8506</dc:creator>
      <dc:date>2018-07-18T16:59:44Z</dc:date>
    </item>
    <item>
      <title>Re: Grouping dates</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479149#M71447</link>
      <description>&lt;P&gt;Good job.&amp;nbsp; Also note, you can get rid of those annoying messages about conversion.&amp;nbsp; Just remove the quotes around the years:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2005 not '2005'&lt;/P&gt;
&lt;P&gt;2006 not '2006'&lt;/P&gt;
&lt;P&gt;2010 not '2010'&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Jul 2018 17:15:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Grouping-dates/m-p/479149#M71447</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-07-18T17:15:50Z</dc:date>
    </item>
  </channel>
</rss>

