<?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 How do I select the last valid column from a data set in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/956991#M373612</link>
    <description>&lt;P&gt;I hava dataset indicating where people lived the last years of life. I'd like to select the last variable (the zip code during the death year) for each observation (patientID) and write it to a new file. Please observe patientID 4 which have some missings at the first years.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data have:&lt;/P&gt;
&lt;P&gt;PatientID zip2008 zip2009 zip2010 zip2011 zip2012&lt;/P&gt;
&lt;P&gt;1&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;304&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;304&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;304&lt;/P&gt;
&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 403&lt;/P&gt;
&lt;P&gt;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; 506&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;506&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 704&lt;/P&gt;
&lt;P&gt;4&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 809&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;809&amp;nbsp; &amp;nbsp; &amp;nbsp; 809&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want:&lt;/P&gt;
&lt;P&gt;PatientID&amp;nbsp; &amp;nbsp;LastZip&lt;/P&gt;
&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 304&lt;/P&gt;
&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;403&lt;/P&gt;
&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;704&lt;/P&gt;
&lt;P&gt;4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;809&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Anyone?&lt;/P&gt;</description>
    <pubDate>Thu, 23 Jan 2025 15:56:56 GMT</pubDate>
    <dc:creator>terjeph</dc:creator>
    <dc:date>2025-01-23T15:56:56Z</dc:date>
    <item>
      <title>How do I select the last valid column from a data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/956991#M373612</link>
      <description>&lt;P&gt;I hava dataset indicating where people lived the last years of life. I'd like to select the last variable (the zip code during the death year) for each observation (patientID) and write it to a new file. Please observe patientID 4 which have some missings at the first years.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Data have:&lt;/P&gt;
&lt;P&gt;PatientID zip2008 zip2009 zip2010 zip2011 zip2012&lt;/P&gt;
&lt;P&gt;1&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;304&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;304&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;304&lt;/P&gt;
&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 403&lt;/P&gt;
&lt;P&gt;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; 506&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;506&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 704&lt;/P&gt;
&lt;P&gt;4&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 809&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;809&amp;nbsp; &amp;nbsp; &amp;nbsp; 809&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want:&lt;/P&gt;
&lt;P&gt;PatientID&amp;nbsp; &amp;nbsp;LastZip&lt;/P&gt;
&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 304&lt;/P&gt;
&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;403&lt;/P&gt;
&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;704&lt;/P&gt;
&lt;P&gt;4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;809&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Anyone?&lt;/P&gt;</description>
      <pubDate>Thu, 23 Jan 2025 15:56:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/956991#M373612</guid>
      <dc:creator>terjeph</dc:creator>
      <dc:date>2025-01-23T15:56:56Z</dc:date>
    </item>
    <item>
      <title>Re: How do I select the last valid column from a data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/956994#M373613</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
array z {*} zip:;
length lastZip $5;
do i=1 to dim(z);
    if not missing(z[i]) then lastZip=z[i];
end;
keep patientID lastZip;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Change the length statement as appropriate -- this is currently assuming zip is a character variable of length 5 ($5).&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Jan 2025 16:32:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/956994#M373613</guid>
      <dc:creator>quickbluefish</dc:creator>
      <dc:date>2025-01-23T16:32:43Z</dc:date>
    </item>
    <item>
      <title>Re: How do I select the last valid column from a data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/956995#M373614</link>
      <description>&lt;P&gt;Better to arrange your data in the long format.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input patient_id year zip;
cards;
1 2008 304
1 2009 304
1 2010 304
2 2008 403
3 2008 506
3 2009 506
3 2010 704
4 2010 809
4 2011 809
4 2012 809
;

data want;
    set have;
    by patient_id;
    if last.patient_id;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Jan 2025 16:47:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/956995#M373614</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2025-01-23T16:47:03Z</dc:date>
    </item>
    <item>
      <title>Re: How do I select the last valid column from a data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/956997#M373615</link>
      <description>&lt;P&gt;COALESCE() or COALESCEC() if the variables are character should do it.&lt;/P&gt;
&lt;P&gt;Just use a descending order variable list.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  set have;
   lastzip=coalescec(of zip2012-zip2008);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 23 Jan 2025 16:49:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/956997#M373615</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-01-23T16:49:49Z</dc:date>
    </item>
    <item>
      <title>Re: How do I select the last valid column from a data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/956999#M373617</link>
      <description>This is interesting - I had no idea you could specify a variable list in descending order.</description>
      <pubDate>Thu, 23 Jan 2025 17:02:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/956999#M373617</guid>
      <dc:creator>quickbluefish</dc:creator>
      <dc:date>2025-01-23T17:02:11Z</dc:date>
    </item>
    <item>
      <title>Re: How do I select the last valid column from a data set</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/957000#M373618</link>
      <description>Simple and elegant!</description>
      <pubDate>Thu, 23 Jan 2025 17:10:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-do-I-select-the-last-valid-column-from-a-data-set/m-p/957000#M373618</guid>
      <dc:creator>terjeph</dc:creator>
      <dc:date>2025-01-23T17:10:27Z</dc:date>
    </item>
  </channel>
</rss>

