<?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: Ordering Dates (Horizontal Data) in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Ordering-Dates-Horizontal-Data/m-p/346798#M63587</link>
    <description>&lt;P&gt;I think this will do what you want:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data want;
    set have;
    call sortn(of date1 - date4);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 03 Apr 2017 18:39:30 GMT</pubDate>
    <dc:creator>collinelliot</dc:creator>
    <dc:date>2017-04-03T18:39:30Z</dc:date>
    <item>
      <title>Ordering Dates (Horizontal Data)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Ordering-Dates-Horizontal-Data/m-p/346796#M63586</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm working with a dataset that includes a list of dates horizontally listed and would like to order them chronologically.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Have:&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; Date 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Date 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Date 3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Date 4&lt;/P&gt;&lt;P&gt;Person 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7/18/2015 &amp;nbsp; &amp;nbsp;7/15/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp;7/27/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7/18/2015&lt;/P&gt;&lt;P&gt;Person 2&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5/03/2015 &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;5/04/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 5/10/2015&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Person 3 &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; 6/10/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6/12/2015 &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;&lt;/P&gt;&lt;P&gt;Person 4 &amp;nbsp; &amp;nbsp; &amp;nbsp; 11&lt;SPAN&gt;/12/2015 &amp;nbsp; &amp;nbsp;11/14/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp;11/30/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 11/07/2015&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Want:&lt;/SPAN&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; Date 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Date 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Date 3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Date 4&lt;/P&gt;&lt;P&gt;Person 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 7/15/2015 &amp;nbsp; &amp;nbsp;7/18/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp;7/18/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7/27/2015&lt;/P&gt;&lt;P&gt;Person 2&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5/03/2015 &amp;nbsp; &amp;nbsp;5/04/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp;5/10/2015&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Person 3 &amp;nbsp; &amp;nbsp; &amp;nbsp; 6/10/2015 &amp;nbsp; &amp;nbsp;6/12/2015 &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;&lt;/P&gt;&lt;P&gt;Person 4 &amp;nbsp; &amp;nbsp; &amp;nbsp; 11&lt;SPAN&gt;/07/2015 &amp;nbsp; &amp;nbsp;11/12/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp;11/14/2015 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 11/30/2015&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Apr 2017 18:23:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Ordering-Dates-Horizontal-Data/m-p/346796#M63586</guid>
      <dc:creator>shaywort13</dc:creator>
      <dc:date>2017-04-03T18:23:59Z</dc:date>
    </item>
    <item>
      <title>Re: Ordering Dates (Horizontal Data)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Ordering-Dates-Horizontal-Data/m-p/346798#M63587</link>
      <description>&lt;P&gt;I think this will do what you want:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data want;
    set have;
    call sortn(of date1 - date4);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 03 Apr 2017 18:39:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Ordering-Dates-Horizontal-Data/m-p/346798#M63587</guid>
      <dc:creator>collinelliot</dc:creator>
      <dc:date>2017-04-03T18:39:30Z</dc:date>
    </item>
    <item>
      <title>Re: Ordering Dates (Horizontal Data)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Ordering-Dates-Horizontal-Data/m-p/346838#M63589</link>
      <description>&lt;P&gt;One of the key questions is what your date variables contain.&amp;nbsp; If they are character strings, more drastic measures are necessary.&amp;nbsp; But if they are legitimate SAS dates, you can start with SORTN.&amp;nbsp; Unfortunately, that only does half the job.&amp;nbsp; It will treat missing values as the lowest possible value, leaving them on the left instead of the right.&amp;nbsp; A full solution for legitimate SAS dates might be:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;call sortn(of date1-date4);&lt;/P&gt;
&lt;P&gt;changed_date=0;&lt;/P&gt;
&lt;P&gt;array date {4};&lt;/P&gt;
&lt;P&gt;do _n_=1 to 4;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if date{_n_} &amp;gt; . then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; change&lt;FONT color="#FF0000"&gt;d&lt;/FONT&gt;_date + 1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if changed_date &amp;lt; _n_ then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date{changed_date} = date{_n_};&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; date{_n_}=.;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;drop changed_date;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#FF0000"&gt;Thanks!&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Apr 2017 22:40:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Ordering-Dates-Horizontal-Data/m-p/346838#M63589</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-04-03T22:40:44Z</dc:date>
    </item>
    <item>
      <title>Re: Ordering Dates (Horizontal Data)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Ordering-Dates-Horizontal-Data/m-p/346849#M63590</link>
      <description>&lt;P&gt;Note one small typo:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;change_date + 1; ----&amp;gt;&amp;nbsp; changed_date + 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Then it works like a charm.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Apr 2017 21:54:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Ordering-Dates-Horizontal-Data/m-p/346849#M63590</guid>
      <dc:creator>collinelliot</dc:creator>
      <dc:date>2017-04-03T21:54:35Z</dc:date>
    </item>
    <item>
      <title>Re: Ordering Dates (Horizontal Data)</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Ordering-Dates-Horizontal-Data/m-p/346899#M63595</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Have;
input id $   (Date1          Date2           Date3             Date4) (: mmddyy10.);
format Date1          Date2           Date3             Date4  mmddyy10.;
cards;
Person1       7/18/2015    7/15/2015      7/27/2015         7/18/2015
Person2       5/03/2015       .                   5/04/2015         5/10/2015
Person3           .             .                         6/10/2015         6/12/2015                          
Person4       11/12/2015    11/14/2015      11/30/2015         11/07/2015
;
run;
data want;
 set have;
 array x{*} date1-date4;
 array y{*} _date1-_date4;
 call sortn(of date1-date4);
 n=0;
 do i=1 to dim(x);
   if not missing(x{i}) then do;n+1;y{n}=x{i};end;
 end;
 drop i n date1-date4;
 format _Date1-_Date4  mmddyy10.;

run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 04 Apr 2017 02:45:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Ordering-Dates-Horizontal-Data/m-p/346899#M63595</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-04-04T02:45:45Z</dc:date>
    </item>
  </channel>
</rss>

