<?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: Remove records in SAS Data Science</title>
    <link>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133248#M1185</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Since you do not list the selection criter, I have to guess from your output dataset.&amp;nbsp; &lt;/P&gt;&lt;P&gt;I got close to your output dataset. The following logic will have the one more record for D667 of 500000 amount.&amp;nbsp;&amp;nbsp; Hope this help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data appr reject;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set file1;&amp;nbsp; /*** your inpurt data set ***/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if reason='APPROVE'&amp;nbsp; then output appr;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; else output reject;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=reject out=reject2x(drop=date) nodupkey; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id amount;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=appr;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id amount;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data reject2x(keep=id amount);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; merge reject2x(in=a) appr(in=b);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id amount;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if a and b then delete;&lt;/P&gt;&lt;P&gt;run;&lt;BR /&gt;proc sort data=reject;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id amount;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data reject;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge reject(in=a) reject2x(in=b);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id amount;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if&amp;nbsp; a and b;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if last.amount;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data all;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set appr reject;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 06 Jun 2012 22:12:04 GMT</pubDate>
    <dc:creator>Daisy</dc:creator>
    <dc:date>2012-06-06T22:12:04Z</dc:date>
    <item>
      <title>Remove records</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133246#M1183</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello SAS Masters,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a question how to remove records from sas dataset like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ID DATE REASON AMOUNT&amp;nbsp; &lt;/P&gt;&lt;P&gt;A123 01302012 REJECT 100000 &lt;/P&gt;&lt;P&gt;A123 01302012 REJECT 100000&lt;/P&gt;&lt;P&gt;A123 01302012 APPROVE 100000&lt;/P&gt;&lt;P&gt;A123 01312012 APPROVE 100000&lt;/P&gt;&lt;P&gt;B345 01312012 REJECT 400000&lt;/P&gt;&lt;P&gt;B345 01312012 APPROVE 400000&lt;/P&gt;&lt;P&gt;B345 01312012 APPROVE 300000&lt;/P&gt;&lt;P&gt;C567 01302012 REJECT 300000&lt;/P&gt;&lt;P&gt;C567 01302012 REJECT 500000&lt;/P&gt;&lt;P&gt;C567 01312012 REJECT 300000&lt;/P&gt;&lt;P&gt;D667 01302012 REJECT 300000&lt;/P&gt;&lt;P&gt;D667 01302012 REJECT 500000&lt;/P&gt;&lt;P&gt;D667 01302012 REJECT 300000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need the output :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ID DATE REASON AMOUNT&lt;/P&gt;&lt;P&gt;A123 01302012 APPROVE 100000&lt;/P&gt;&lt;P&gt;A123 01312012 APPROVE 100000&lt;/P&gt;&lt;P&gt;B345 01312012 APPROVE 400000&lt;/P&gt;&lt;P&gt;B345 01312012 APPROVE 300000&lt;/P&gt;&lt;P&gt;C567 01302012 REJECT 500000&lt;/P&gt;&lt;P&gt;C567 01312012 REJECT 300000&lt;/P&gt;&lt;P&gt;D667 01302012 REJECT 300000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how to do this ?&lt;/P&gt;&lt;P&gt;Thanks in advance for your help.&lt;/P&gt;&lt;P&gt;RHS&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jun 2012 17:06:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133246#M1183</guid>
      <dc:creator>rhsantoso</dc:creator>
      <dc:date>2012-06-06T17:06:36Z</dc:date>
    </item>
    <item>
      <title>Re: Remove records</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133247#M1184</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What's the logic?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jun 2012 17:15:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133247#M1184</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2012-06-06T17:15:46Z</dc:date>
    </item>
    <item>
      <title>Re: Remove records</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133248#M1185</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Since you do not list the selection criter, I have to guess from your output dataset.&amp;nbsp; &lt;/P&gt;&lt;P&gt;I got close to your output dataset. The following logic will have the one more record for D667 of 500000 amount.&amp;nbsp;&amp;nbsp; Hope this help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data appr reject;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set file1;&amp;nbsp; /*** your inpurt data set ***/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if reason='APPROVE'&amp;nbsp; then output appr;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; else output reject;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=reject out=reject2x(drop=date) nodupkey; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id amount;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sort data=appr;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id amount;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data reject2x(keep=id amount);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; merge reject2x(in=a) appr(in=b);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id amount;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if a and b then delete;&lt;/P&gt;&lt;P&gt;run;&lt;BR /&gt;proc sort data=reject;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id amount;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data reject;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge reject(in=a) reject2x(in=b);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by id amount;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if&amp;nbsp; a and b;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if last.amount;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data all;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set appr reject;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jun 2012 22:12:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133248#M1185</guid>
      <dc:creator>Daisy</dc:creator>
      <dc:date>2012-06-06T22:12:04Z</dc:date>
    </item>
    <item>
      <title>Re: Remove records</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133249#M1186</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The way I understand the logic is as follows:&lt;/P&gt;&lt;P&gt;For a given ID and Date:&lt;/P&gt;&lt;P&gt;If there is no APPROVE record then output the last REJECT record.&lt;/P&gt;&lt;P&gt;Else, if there is one or more APPROVE records only output APPROVE records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Zafer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ex:&lt;/P&gt;&lt;P&gt;data x;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; input ID $ DATE anydtdte. REASON $ AMOUNT ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; format Date Date9.;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;A123 01302012 REJECT 100000&lt;/P&gt;&lt;P&gt;A123 01302012 REJECT 100000&lt;/P&gt;&lt;P&gt;A123 01302012 APPROVE 100000&lt;/P&gt;&lt;P&gt;A123 01312012 APPROVE 100000&lt;/P&gt;&lt;P&gt;B345 01312012 REJECT 400000&lt;/P&gt;&lt;P&gt;B345 01312012 APPROVE 400000&lt;/P&gt;&lt;P&gt;B345 01312012 APPROVE 300000&lt;/P&gt;&lt;P&gt;C567 01302012 REJECT 300000&lt;/P&gt;&lt;P&gt;C567 01302012 REJECT 500000&lt;/P&gt;&lt;P&gt;C567 01312012 REJECT 300000&lt;/P&gt;&lt;P&gt;D667 01302012 REJECT 300000&lt;/P&gt;&lt;P&gt;D667 01302012 REJECT 500000&lt;/P&gt;&lt;P&gt;D667 01302012 REJECT 300000&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Approved = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until(last.Date);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set x end=last;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by ID Date;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Approved + (REASON = 'APPROVE');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if last.Date and NOT(Approved) then output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if REASON = 'APPROVE' then Output; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop Approved;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc print; run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Jun 2012 10:40:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133249#M1186</guid>
      <dc:creator>Alpay</dc:creator>
      <dc:date>2012-06-07T10:40:54Z</dc:date>
    </item>
    <item>
      <title>Re: Remove records</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133250#M1187</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just from input and output data sets, the implied rules can be many. It would help if&amp;nbsp; OP can spell out the rules explicitly, as ultimately it is OP's call.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Jun 2012 14:35:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133250#M1187</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-06-07T14:35:54Z</dc:date>
    </item>
    <item>
      <title>Re: Remove records</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133251#M1188</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the response and help. &lt;/P&gt;&lt;P&gt;The logic :&lt;/P&gt;&lt;P&gt;if the same id and date have more than 1 reject than the output only 1 reject,&lt;/P&gt;&lt;P&gt;if the same id and date have more than 1 approve than the output all approve,&lt;/P&gt;&lt;P&gt;if the same id and date have more than 1 reject and more than 1 approve then the output all approve.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RHS&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 16 Jun 2012 04:22:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133251#M1188</guid>
      <dc:creator>rhsantoso</dc:creator>
      <dc:date>2012-06-16T04:22:51Z</dc:date>
    </item>
    <item>
      <title>Re: Remove records</title>
      <link>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133252#M1189</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;See below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;&amp;nbsp; input ID $ DATE anydtdte. REASON $ AMOUNT ;&lt;BR /&gt;&amp;nbsp; format Date Date9.;&lt;BR /&gt;datalines;&lt;BR /&gt;A123 01302012 REJECT 100000&lt;BR /&gt;A123 01302012 REJECT 100000&lt;BR /&gt;A123 01302012 APPROVE 100000&lt;BR /&gt;A123 01312012 APPROVE 100000&lt;BR /&gt;B345 01312012 REJECT 400000&lt;BR /&gt;B345 01312012 APPROVE 400000&lt;BR /&gt;B345 01312012 APPROVE 300000&lt;BR /&gt;C567 01302012 REJECT 300000&lt;BR /&gt;C567 01302012 REJECT 500000&lt;BR /&gt;C567 01312012 REJECT 300000&lt;BR /&gt;D667 01302012 REJECT 300000&lt;BR /&gt;D667 01302012 REJECT 500000&lt;BR /&gt;D667 01302012 REJECT 300000&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=have;&lt;BR /&gt;&amp;nbsp; by ID Date Reason;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;BR /&gt;&amp;nbsp; set have;&lt;BR /&gt;&amp;nbsp; by ID Date;&lt;BR /&gt;&amp;nbsp; if Reason='APPROVE' then output;&lt;BR /&gt;&amp;nbsp; else if first.date and Reason='REJECT' then output;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 17 Jun 2012 09:48:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Science/Remove-records/m-p/133252#M1189</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2012-06-17T09:48:17Z</dc:date>
    </item>
  </channel>
</rss>

