<?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: filter values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/filter-values/m-p/110382#M22906</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is this a case where linguistic sorting might help?&lt;/P&gt;&lt;P&gt;Recently introduced, proc sort sortseq=linguistic( )&lt;/P&gt;&lt;P&gt;And something about number sorting to ensure xxx10 comes after xxx9&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 14 Oct 2013 06:50:01 GMT</pubDate>
    <dc:creator>Peter_C</dc:creator>
    <dc:date>2013-10-14T06:50:01Z</dc:date>
    <item>
      <title>filter values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/filter-values/m-p/110378#M22902</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to delete the values with dates and just keep the last one. For example, I've a field like var1 below and the result should look like New_var1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" style="WIDTH: 450px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" width="225"&gt;&lt;STRONG&gt;var1&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD class="xl65" width="225"&gt;&lt;STRONG&gt;New_var1&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;a1.sas7bdat&lt;/TD&gt;&lt;TD&gt;a3.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;a2.sas7bdat&lt;/TD&gt;&lt;TD&gt;ac_bat.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;a3.sas7bdat&lt;/TD&gt;&lt;TD&gt;ac_det.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;ac_bat.sas7bdat&lt;/TD&gt;&lt;TD&gt;acc_20101023.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;ac_det.sas7bdat&lt;/TD&gt;&lt;TD&gt;acc_fm.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;acc_20101023.sas7bdat&lt;/TD&gt;&lt;TD&gt;act_re.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;acc_fm.sas7bdat&lt;/TD&gt;&lt;TD&gt;adds_comp.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;act_re.sas7bdat&lt;/TD&gt;&lt;TD&gt;adds_comp_w.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;adds_comp.sas7bdat&lt;/TD&gt;&lt;TD&gt;a_excl.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;adds_comp_w.sas7bdat&lt;/TD&gt;&lt;TD&gt;x_200911.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;a_excl.sas7bdat&lt;/TD&gt;&lt;TD&gt;y_201004.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;x_200909.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;x_200910.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;x_200911.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_200804.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_200806.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_200810.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_200901.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_200902.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_200903.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_200905.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_200907.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_200908.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_200911.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_200912.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_201001.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_201002.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD height="20"&gt;y_201004.sas7bdat&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Oct 2013 12:51:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/filter-values/m-p/110378#M22902</guid>
      <dc:creator>helloSAS</dc:creator>
      <dc:date>2013-10-11T12:51:42Z</dc:date>
    </item>
    <item>
      <title>Re: filter values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/filter-values/m-p/110379#M22903</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think it is LAST DOT "name-part" sorted BY "name-part" "numeric-part".&amp;nbsp; Maybe.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Oct 2013 15:01:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/filter-values/m-p/110379#M22903</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2013-10-11T15:01:20Z</dc:date>
    </item>
    <item>
      <title>Re: filter values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/filter-values/m-p/110380#M22904</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Or maybe in SQL:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc sql;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;create table want as&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;select var1 as new_var1 from &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (select &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var1, &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compress(scan(var1,1,"."),,"d") as prefix,&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input(compress(scan(var1,1,"."),,"kd"), ? best.) as number&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;group by prefix &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;having number=max(number);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;quit;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 12 Oct 2013 01:12:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/filter-values/m-p/110380#M22904</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2013-10-12T01:12:02Z</dc:date>
    </item>
    <item>
      <title>Re: filter values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/filter-values/m-p/110381#M22905</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;Hi There&lt;/P&gt;&lt;P&gt;Please try the following codes. This should work. However if you have something like aa1 aa2 or abc1 abc2 then you have to add some mode lines to the code. a similar pattern should work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;var1=var;&lt;BR /&gt;run;&lt;BR /&gt;data want;&lt;BR /&gt;set want;&lt;BR /&gt;var1=tranwrd(var1,'.sas7bdat','');&lt;BR /&gt;if index(var1,'.sas7bda') then delete;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=want out=want1;&lt;BR /&gt;by descending var1;&lt;BR /&gt;run;&lt;BR /&gt;data want1;&lt;BR /&gt;set want1;&lt;BR /&gt;j=index(var1,"_");&lt;BR /&gt;k= substr(var1,j+1);&lt;BR /&gt;&amp;nbsp; l&amp;nbsp;&amp;nbsp; = index(k,"_");&lt;BR /&gt;&amp;nbsp; m&amp;nbsp;&amp;nbsp; = substr(k,l+1);&lt;BR /&gt;&amp;nbsp; q1&amp;nbsp;&amp;nbsp; = substr(var1,1,j-1);&lt;BR /&gt;&amp;nbsp; q2&amp;nbsp;&amp;nbsp; = substr(k,1,l-1);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; q3&amp;nbsp;&amp;nbsp; = substr(k,l+1) ;&lt;BR /&gt;run;&lt;BR /&gt;data want1;&lt;BR /&gt;set want1;&lt;BR /&gt;var2=k*1;&lt;BR /&gt;if j=0 then do;&lt;BR /&gt;k=substr(var1,2);&lt;BR /&gt;var2=k*1;&lt;BR /&gt;q1=substr(var1,1,1);&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;BR /&gt;data want2;&lt;BR /&gt;set want1;&lt;BR /&gt;q4=q1;&lt;BR /&gt;if var2=. then do;&lt;BR /&gt;q4=compbl(q1||'_'||q3);&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;BR /&gt;proc sort data=want2;&lt;BR /&gt;by&amp;nbsp; q4;&lt;BR /&gt;run;&lt;BR /&gt;data want3;&lt;BR /&gt;set want2;&lt;BR /&gt;by q4;&lt;BR /&gt;if first.q4 ;&lt;BR /&gt;run;&lt;BR /&gt;proc sort data=want3 out= want_final(keep=var);&lt;BR /&gt;by var;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 03:38:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/filter-values/m-p/110381#M22905</guid>
      <dc:creator>Mit</dc:creator>
      <dc:date>2013-10-14T03:38:28Z</dc:date>
    </item>
    <item>
      <title>Re: filter values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/filter-values/m-p/110382#M22906</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is this a case where linguistic sorting might help?&lt;/P&gt;&lt;P&gt;Recently introduced, proc sort sortseq=linguistic( )&lt;/P&gt;&lt;P&gt;And something about number sorting to ensure xxx10 comes after xxx9&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 06:50:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/filter-values/m-p/110382#M22906</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2013-10-14T06:50:01Z</dc:date>
    </item>
  </channel>
</rss>

