<?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: Compare multiple column date values and flag the earliest/smallest date variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879964#M347632</link>
    <description>&lt;P&gt;Are these dates actual numeric SAS dates formatted as 26-Oct-17, or are they character strings?&lt;/P&gt;</description>
    <pubDate>Fri, 09 Jun 2023 20:11:24 GMT</pubDate>
    <dc:creator>PaigeMiller</dc:creator>
    <dc:date>2023-06-09T20:11:24Z</dc:date>
    <item>
      <title>Compare multiple column date values and flag the earliest/smallest date variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879960#M347630</link>
      <description>&lt;P&gt;Hello SAS Community,&lt;BR /&gt;I'm a relatively new SAS programmer and I really need your help coding this!&amp;nbsp; I have a dataset that contains 5 columns, each representing a different disease diagnosis date in date format (date9.).&amp;nbsp; Some columns contain missing values.&amp;nbsp; I need to compare the diagnosis dates across these 5 columns when the value is not missing and flag or print out the earliest diagnosis date variable. Essentially, to find which disease diagnosis occurred first and flag that.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there an easy way to code this?&amp;nbsp; See my sample data and expected output below. Thank you so much for your help!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data Example:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Diag1&lt;/TD&gt;&lt;TD&gt;Diag2&lt;/TD&gt;&lt;TD&gt;Diag3&lt;/TD&gt;&lt;TD&gt;Diag4&lt;/TD&gt;&lt;TD&gt;Diag5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;26-Oct-17&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;28-Oct-18&lt;/TD&gt;&lt;TD&gt;26-Mar-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;22-Dec-21&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;10-May-21&lt;/TD&gt;&lt;TD&gt;13-Nov-22&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;15-Oct-19&lt;/TD&gt;&lt;TD&gt;15-Oct-19&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;24-Jun-15&lt;/TD&gt;&lt;TD&gt;23-Oct-17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;25-Dec-16&lt;/TD&gt;&lt;TD&gt;14-Oct-18&lt;/TD&gt;&lt;TD&gt;24-Nov-22&lt;/TD&gt;&lt;TD&gt;26-Dec-15&lt;/TD&gt;&lt;TD&gt;23-Oct-23&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like the output to be as follows:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Diag1&lt;/TD&gt;&lt;TD&gt;Diag2&lt;/TD&gt;&lt;TD&gt;Diag3&lt;/TD&gt;&lt;TD&gt;Diag4&lt;/TD&gt;&lt;TD&gt;Diag5&lt;/TD&gt;&lt;TD&gt;Flag&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;26-Oct-17&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;28-Oct-18&lt;/TD&gt;&lt;TD&gt;26-Mar-19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Diag1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;Disease Free&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;22-Dec-21&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;Diag1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;10-May-21&lt;/TD&gt;&lt;TD&gt;13-Nov-22&lt;/TD&gt;&lt;TD&gt;Diag4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;15-Oct-19&lt;/TD&gt;&lt;TD&gt;15-Oct-19&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;24-Jun-15&lt;/TD&gt;&lt;TD&gt;23-Oct-17&lt;/TD&gt;&lt;TD&gt;Diag5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;25-Dec-16&lt;/TD&gt;&lt;TD&gt;14-Oct-18&lt;/TD&gt;&lt;TD&gt;24-Nov-22&lt;/TD&gt;&lt;TD&gt;26-Dec-15&lt;/TD&gt;&lt;TD&gt;23-Oct-23&lt;/TD&gt;&lt;TD&gt;Diag4&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;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Jun 2023 19:59:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879960#M347630</guid>
      <dc:creator>kelly2016</dc:creator>
      <dc:date>2023-06-09T19:59:55Z</dc:date>
    </item>
    <item>
      <title>Re: Compare multiple column date values and flag the earliest/smallest date variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879963#M347631</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;

length flag $40.;

array _diag(*) diag1-diag5;

if nmiss(of _diag(*)) ne dim(_diag) then do;
    *find smallest value;
    min_date = min(of _diag(*));

    *find first location of smallest value;
    index_min_date = whichn(min_date, of _diag(*));

    *find name of variable at index;
     flag = vname(_diag(index_min_date));
end;
else flag = 'Disease Free';

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/443521"&gt;@kelly2016&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hello SAS Community,&lt;BR /&gt;I'm a relatively new SAS programmer and I really need your help coding this!&amp;nbsp; I have a dataset that contains 5 columns, each representing a different disease diagnosis date in date format (date9.).&amp;nbsp; Some columns contain missing values.&amp;nbsp; I need to compare the diagnosis dates across these 5 columns when the value is not missing and flag or print out the earliest diagnosis date variable. Essentially, to find which disease diagnosis occurred first and flag that.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is there an easy way to code this?&amp;nbsp; See my sample data and expected output below. Thank you so much for your help!!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data Example:&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;ID&lt;/TD&gt;
&lt;TD&gt;Diag1&lt;/TD&gt;
&lt;TD&gt;Diag2&lt;/TD&gt;
&lt;TD&gt;Diag3&lt;/TD&gt;
&lt;TD&gt;Diag4&lt;/TD&gt;
&lt;TD&gt;Diag5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;26-Oct-17&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;28-Oct-18&lt;/TD&gt;
&lt;TD&gt;26-Mar-19&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;22-Dec-21&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;10-May-21&lt;/TD&gt;
&lt;TD&gt;13-Nov-22&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;15-Oct-19&lt;/TD&gt;
&lt;TD&gt;15-Oct-19&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;24-Jun-15&lt;/TD&gt;
&lt;TD&gt;23-Oct-17&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;25-Dec-16&lt;/TD&gt;
&lt;TD&gt;14-Oct-18&lt;/TD&gt;
&lt;TD&gt;24-Nov-22&lt;/TD&gt;
&lt;TD&gt;26-Dec-15&lt;/TD&gt;
&lt;TD&gt;23-Oct-23&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would like the output to be as follows:&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;ID&lt;/TD&gt;
&lt;TD&gt;Diag1&lt;/TD&gt;
&lt;TD&gt;Diag2&lt;/TD&gt;
&lt;TD&gt;Diag3&lt;/TD&gt;
&lt;TD&gt;Diag4&lt;/TD&gt;
&lt;TD&gt;Diag5&lt;/TD&gt;
&lt;TD&gt;Flag&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;26-Oct-17&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;28-Oct-18&lt;/TD&gt;
&lt;TD&gt;26-Mar-19&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;Diag1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;Disease Free&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;22-Dec-21&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;Diag1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;10-May-21&lt;/TD&gt;
&lt;TD&gt;13-Nov-22&lt;/TD&gt;
&lt;TD&gt;Diag4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;15-Oct-19&lt;/TD&gt;
&lt;TD&gt;15-Oct-19&lt;/TD&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD&gt;24-Jun-15&lt;/TD&gt;
&lt;TD&gt;23-Oct-17&lt;/TD&gt;
&lt;TD&gt;Diag5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;25-Dec-16&lt;/TD&gt;
&lt;TD&gt;14-Oct-18&lt;/TD&gt;
&lt;TD&gt;24-Nov-22&lt;/TD&gt;
&lt;TD&gt;26-Dec-15&lt;/TD&gt;
&lt;TD&gt;23-Oct-23&lt;/TD&gt;
&lt;TD&gt;Diag4&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;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;BR /&gt;One way is above, there are others.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Jun 2023 20:09:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879963#M347631</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2023-06-09T20:09:22Z</dc:date>
    </item>
    <item>
      <title>Re: Compare multiple column date values and flag the earliest/smallest date variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879964#M347632</link>
      <description>&lt;P&gt;Are these dates actual numeric SAS dates formatted as 26-Oct-17, or are they character strings?&lt;/P&gt;</description>
      <pubDate>Fri, 09 Jun 2023 20:11:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879964#M347632</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2023-06-09T20:11:24Z</dc:date>
    </item>
    <item>
      <title>Re: Compare multiple column date values and flag the earliest/smallest date variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879967#M347635</link>
      <description>&lt;P&gt;Hi Reeza,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you SO much for your super quick response!&amp;nbsp;Your codes worked like magic and it is so concise! I have been struggling with this coding the whole afternoon and I am so grateful for your help!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Jun 2023 20:29:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879967#M347635</guid>
      <dc:creator>kelly2016</dc:creator>
      <dc:date>2023-06-09T20:29:11Z</dc:date>
    </item>
    <item>
      <title>Re: Compare multiple column date values and flag the earliest/smallest date variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879968#M347636</link>
      <description>Hi Reeza,&lt;BR /&gt;&lt;BR /&gt;Thank you SO much for your super quick response! Your codes worked like magic and it is so concise! I have been struggling with this coding the whole afternoon and I am so grateful for your help!</description>
      <pubDate>Fri, 09 Jun 2023 20:29:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879968#M347636</guid>
      <dc:creator>kelly2016</dc:creator>
      <dc:date>2023-06-09T20:29:59Z</dc:date>
    </item>
    <item>
      <title>Re: Compare multiple column date values and flag the earliest/smallest date variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879970#M347638</link>
      <description>Thank you, PaigeMiler. Yes, these SAS dates are numeric values in my dataset.</description>
      <pubDate>Fri, 09 Jun 2023 20:31:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Compare-multiple-column-date-values-and-flag-the-earliest/m-p/879970#M347638</guid>
      <dc:creator>kelly2016</dc:creator>
      <dc:date>2023-06-09T20:31:40Z</dc:date>
    </item>
  </channel>
</rss>

