<?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: Delete rows where same person has same test and test results in next 7 days in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/Delete-rows-where-same-person-has-same-test-and-test-results-in/m-p/851472#M37365</link>
    <description>Which record do you want to delete when you have a match within 7 days?&amp;amp;nbsp; The latter or the earlier?&lt;BR /&gt;&amp;amp;nbsp;&lt;BR /&gt;If you want to delete the latter, and you don't mind generating a resulting dataset sorted by ID/DATE, then:&lt;BR /&gt;&amp;amp;nbsp;&lt;BR /&gt;data have;&lt;BR /&gt;  input id $ Test_name $ Test_Result $ date :mmddyy10.;&lt;BR /&gt;  format date mmddyy10.;&lt;BR /&gt;cards;&lt;BR /&gt;001 AB Pos 1/5/2021&lt;BR /&gt;002 CD Neg 1/6/2021&lt;BR /&gt;003 CD Pos 1/7/2021&lt;BR /&gt;004 AB Neg 1/12/2021&lt;BR /&gt;005 CD Pos 1/21/2021&lt;BR /&gt;006 CD Neg 1/23/2021&lt;BR /&gt;007 CD Neg 1/5/2021&lt;BR /&gt;001 AB Pos 1/9/2021&lt;BR /&gt;008 AB Pos 1/6/2021&lt;BR /&gt;009 AB Neg 1/7/2021&lt;BR /&gt;010 CD Pos 1/12/2021&lt;BR /&gt;011 CD Neg 1/21/2021&lt;BR /&gt;012 CD Neg 1/23/2021&lt;BR /&gt;013 AB Pos 2/5/2021&lt;BR /&gt;014 CD Neg 2/6/2021&lt;BR /&gt;003 CD Pos 2/7/2021&lt;BR /&gt;015 AB Neg 2/12/2021&lt;BR /&gt;016 CD Pos 2/21/2021&lt;BR /&gt;006 CD Neg 2/23/2021&lt;BR /&gt;017 CD Neg 2/5/2021&lt;BR /&gt;018 AB Pos 2/9/2021&lt;BR /&gt;008 AB Pos 2/6/2021&lt;BR /&gt;019 AB Neg 2/7/2021&lt;BR /&gt;020 CD Pos 2/14/2021&lt;BR /&gt;021 CD Neg 2/25/2021&lt;BR /&gt;022 CD Neg 2/27/2021&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc sort data=have out=need;&lt;BR /&gt;  by id date;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;data want;&lt;BR /&gt;  set need;&lt;BR /&gt;  by id;&lt;BR /&gt;  if first.id=0 and dif(date)&amp;amp;lt;=7 then delete;&lt;BR /&gt;run;&lt;BR /&gt;If you want to preserve the original data order, you can use a hash object to record the "_most_recent_date" keyed on ID/TEST_NAME/TEST_RESULT, to facilitate comparison to the current date:&lt;BR /&gt;&amp;amp;nbsp;&lt;BR /&gt;data want (drop=_:);&lt;BR /&gt;  set have;&lt;BR /&gt;  _most_recent_date=.;&lt;BR /&gt;&lt;BR /&gt;  if _n_=1 then do;&lt;BR /&gt;    declare hash h ();&lt;BR /&gt;      h.definekey('id','test_name','test_result');&lt;BR /&gt;      h.definedata('id','test_name','test_result','_most_recent_date');&lt;BR /&gt;      h.definedone();&lt;BR /&gt;  end;&lt;BR /&gt;&lt;BR /&gt;  if h.find()=0 and _most_recent_date&amp;amp;gt;=date-7 then delete;&lt;BR /&gt;  h.replace(key:id,key:test_name,key:test_result,data:id,data:test_name,data:test_result,data:date);&lt;BR /&gt;run;&lt;BR /&gt;&amp;amp;nbsp;</description>
    <pubDate>Thu, 29 Dec 2022 18:19:08 GMT</pubDate>
    <dc:creator>mkeintz</dc:creator>
    <dc:date>2022-12-29T18:19:08Z</dc:date>
    <item>
      <title>Delete rows where same person has same test and test results in next 7 days</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Delete-rows-where-same-person-has-same-test-and-test-results-in/m-p/851404#M37351</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I have the data set have. How can I delete the rows where same ID has same Test_Name and same Test_Result within next 7 days of previous Test_Result date (example, ID=001).&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;data have;
input id $ Test_name $ Test_Result $ date :mmddyy10.;
format date mmddyy10.;
cards;
001 AB Pos 1/5/2021
002 CD Neg 1/6/2021
003 CD Pos 1/7/2021
004 AB Neg 1/12/2021
005 CD Pos 1/21/2021
006 CD Neg 1/23/2021
007 CD Neg 1/5/2021
001 AB Pos 1/9/2021
008 AB Pos 1/6/2021
009 AB Neg 1/7/2021
010 CD Pos 1/12/2021
011 CD Neg 1/21/2021
012 CD Neg 1/23/2021
013 AB Pos 2/5/2021
014 CD Neg 2/6/2021
003 CD Pos 2/7/2021
015 AB Neg 2/12/2021
016 CD Pos 2/21/2021
006 CD Neg 2/23/2021
017 CD Neg 2/5/2021
018 AB Pos 2/9/2021
008 AB Pos 2/6/2021
019 AB Neg 2/7/2021
020 CD Pos 2/14/2021
021 CD Neg 2/25/2021
022 CD Neg 2/27/2021
;
run;&lt;/PRE&gt;</description>
      <pubDate>Wed, 28 Dec 2022 21:15:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Delete-rows-where-same-person-has-same-test-and-test-results-in/m-p/851404#M37351</guid>
      <dc:creator>Barkat</dc:creator>
      <dc:date>2022-12-28T21:15:03Z</dc:date>
    </item>
    <item>
      <title>Re: Delete rows where same person has same test and test results in next 7 days</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Delete-rows-where-same-person-has-same-test-and-test-results-in/m-p/851472#M37365</link>
      <description>Which record do you want to delete when you have a match within 7 days?&amp;amp;nbsp; The latter or the earlier?&lt;BR /&gt;&amp;amp;nbsp;&lt;BR /&gt;If you want to delete the latter, and you don't mind generating a resulting dataset sorted by ID/DATE, then:&lt;BR /&gt;&amp;amp;nbsp;&lt;BR /&gt;data have;&lt;BR /&gt;  input id $ Test_name $ Test_Result $ date :mmddyy10.;&lt;BR /&gt;  format date mmddyy10.;&lt;BR /&gt;cards;&lt;BR /&gt;001 AB Pos 1/5/2021&lt;BR /&gt;002 CD Neg 1/6/2021&lt;BR /&gt;003 CD Pos 1/7/2021&lt;BR /&gt;004 AB Neg 1/12/2021&lt;BR /&gt;005 CD Pos 1/21/2021&lt;BR /&gt;006 CD Neg 1/23/2021&lt;BR /&gt;007 CD Neg 1/5/2021&lt;BR /&gt;001 AB Pos 1/9/2021&lt;BR /&gt;008 AB Pos 1/6/2021&lt;BR /&gt;009 AB Neg 1/7/2021&lt;BR /&gt;010 CD Pos 1/12/2021&lt;BR /&gt;011 CD Neg 1/21/2021&lt;BR /&gt;012 CD Neg 1/23/2021&lt;BR /&gt;013 AB Pos 2/5/2021&lt;BR /&gt;014 CD Neg 2/6/2021&lt;BR /&gt;003 CD Pos 2/7/2021&lt;BR /&gt;015 AB Neg 2/12/2021&lt;BR /&gt;016 CD Pos 2/21/2021&lt;BR /&gt;006 CD Neg 2/23/2021&lt;BR /&gt;017 CD Neg 2/5/2021&lt;BR /&gt;018 AB Pos 2/9/2021&lt;BR /&gt;008 AB Pos 2/6/2021&lt;BR /&gt;019 AB Neg 2/7/2021&lt;BR /&gt;020 CD Pos 2/14/2021&lt;BR /&gt;021 CD Neg 2/25/2021&lt;BR /&gt;022 CD Neg 2/27/2021&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc sort data=have out=need;&lt;BR /&gt;  by id date;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;data want;&lt;BR /&gt;  set need;&lt;BR /&gt;  by id;&lt;BR /&gt;  if first.id=0 and dif(date)&amp;amp;lt;=7 then delete;&lt;BR /&gt;run;&lt;BR /&gt;If you want to preserve the original data order, you can use a hash object to record the "_most_recent_date" keyed on ID/TEST_NAME/TEST_RESULT, to facilitate comparison to the current date:&lt;BR /&gt;&amp;amp;nbsp;&lt;BR /&gt;data want (drop=_:);&lt;BR /&gt;  set have;&lt;BR /&gt;  _most_recent_date=.;&lt;BR /&gt;&lt;BR /&gt;  if _n_=1 then do;&lt;BR /&gt;    declare hash h ();&lt;BR /&gt;      h.definekey('id','test_name','test_result');&lt;BR /&gt;      h.definedata('id','test_name','test_result','_most_recent_date');&lt;BR /&gt;      h.definedone();&lt;BR /&gt;  end;&lt;BR /&gt;&lt;BR /&gt;  if h.find()=0 and _most_recent_date&amp;amp;gt;=date-7 then delete;&lt;BR /&gt;  h.replace(key:id,key:test_name,key:test_result,data:id,data:test_name,data:test_result,data:date);&lt;BR /&gt;run;&lt;BR /&gt;&amp;amp;nbsp;</description>
      <pubDate>Thu, 29 Dec 2022 18:19:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Delete-rows-where-same-person-has-same-test-and-test-results-in/m-p/851472#M37365</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2022-12-29T18:19:08Z</dc:date>
    </item>
    <item>
      <title>Re: Delete rows where same person has same test and test results in next 7 days</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Delete-rows-where-same-person-has-same-test-and-test-results-in/m-p/851477#M37366</link>
      <description>Thanks for providing solutions in both way. This is super helpful for me.</description>
      <pubDate>Thu, 29 Dec 2022 05:07:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Delete-rows-where-same-person-has-same-test-and-test-results-in/m-p/851477#M37366</guid>
      <dc:creator>Barkat</dc:creator>
      <dc:date>2022-12-29T05:07:10Z</dc:date>
    </item>
  </channel>
</rss>

