<?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: How to eliminate a day and a day after it based on date observations in another table? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416369#M280245</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data WORK.TABLEA;
infile datalines dsd truncover;
input name:$3. date:DATE9.;
format date DATE9.;
label name="name" date="date";
datalines4;
A, 7-May-08
A, 11-Jul-08
A, 3-Jan-09
A, 4-Jan-09
A, 8-Jul-09
A, 24-Jul-09
A, 8-Dec-09
B, 7-May-08
B, 10-May-08
B, 17-May-08
B, 24-May-08
B, 1-Jun-08
B, 18-Jun-08
B, 9-May-09
C, 7-Oct-09
C, 17-Oct-09
C, 25-Oct-09
C, 18-Nov-09
C, 4-Dec-09
C, 19-Dec-09
C, 9-May-10
C, 9-May-10
C, 10-May-10
;;;;
run;

data WORK.TABLEB;
infile datalines dsd truncover;
input name:$3. date:DATE9.;
format date DATE9.;
label name="name" date="date";
datalines4;
A,11-Jul-08
A,3-Jan-09
A,24-Jul-09
B,7-May-08
B,17-May-08
B,18-Jun-08
B,9-Jul-09
C,17-Oct-09
C,4-Dec-09
C,19-Dec-09
;;;;
run;
proc sort data=tablea out=tablea1 nodupkey;
by name date;
run;
proc sort data=tableb out=tableb1 nodupkey;
by name date;
run;
data want;
 merge  tablea1 tableb1(in=inb) ;
 by name date;
 if inb or (inb=0 and lag(inb)=1 and not first.name) then delete;;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 27 Nov 2017 13:13:55 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2017-11-27T13:13:55Z</dc:date>
    <item>
      <title>How to eliminate a day and a day after it based on date observations in another table?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416265#M280241</link>
      <description>&lt;P&gt;Hello everybody,&lt;/P&gt;&lt;P&gt;I have table A and B which have name and date variables and I want to remove observations in table A with the same&amp;nbsp;name and date in table B. In addition, for the same name and date between table A and B, I want to delete the next date after it in table A.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The table A is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data WORK.TABLEA;
infile datalines dsd truncover;
input name:$3. date:DATE9.;
format date DATE9.;
label name="name" date="date";
datalines4;
A, 7-May-08
A, 11-Jul-08
A, 3-Jan-09
A, 4-Jan-09
A, 8-Jul-09
A, 24-Jul-09
A, 8-Dec-09
B, 7-May-08
B, 10-May-08
B, 17-May-08
B, 24-May-08
B, 1-Jun-08
B, 18-Jun-08
B, 9-May-09
C, 7-Oct-09
C, 17-Oct-09
C, 25-Oct-09
C, 18-Nov-09
C, 4-Dec-09
C, 19-Dec-09
C, 9-May-10
C, 9-May-10
C, 10-May-10
;;;;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And the table B is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data WORK.TABLEB;
infile datalines dsd truncover;
input name:$3. date:DATE9.;
format date DATE9.;
label name="name" date="date";
datalines4;
A,11-Jul-08
A,3-Jan-09
A,24-Jul-09
B,7-May-08
B,17-May-08
B,18-Jun-08
B,9-Jul-09
C,17-Oct-09
C,4-Dec-09
C,19-Dec-09
;;;;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So the result is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;+------+-----------+
| name |   date    |
+------+-----------+
| A    | 7-May-08  |
| A    | 8-Jul-09  |
| B    | 1-Jun-08  |
| C    | 7-Oct-09  |
| C    | 18-Nov-09 |
| C    | 10-May-10 |
+------+-----------+&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;How can I do that?&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 27 Nov 2017 07:44:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416265#M280241</guid>
      <dc:creator>aminkarimid</dc:creator>
      <dc:date>2017-11-27T07:44:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to eliminate a day and a day after it based on date observations in another table?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416282#M280242</link>
      <description>&lt;P&gt;Something like:&lt;/P&gt;
&lt;PRE&gt;proc sql;
  create table WANT as 
  select A.*
  from   TABLEA A
  left join TABLEB B
  on       A.NAME=B.NAME
  and     (A.DATE=B.DATE or A.DATE=B.DATE+1)
  where  B.NAME="";
quit;&lt;/PRE&gt;
&lt;P&gt;But I am afraid your required output doesn't seem to work, why does 08Dec for A not come out, it should, there is no 1 day around it in B?&lt;/P&gt;</description>
      <pubDate>Mon, 27 Nov 2017 08:57:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416282#M280242</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-11-27T08:57:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to eliminate a day and a day after it based on date observations in another table?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416287#M280243</link>
      <description>&lt;P&gt;"In addition, for the same name and date between table A and B, I want to delete the next date after it in table A." &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138303"&gt;@aminkarimid&lt;/a&gt;, do you mean the next date or the next observation?&lt;/P&gt;</description>
      <pubDate>Mon, 27 Nov 2017 09:19:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416287#M280243</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2017-11-27T09:19:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to eliminate a day and a day after it based on date observations in another table?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416366#M280244</link>
      <description>Thanks &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31304"&gt;@PeterClemmensen&lt;/a&gt;&lt;BR /&gt;I mean name and date observations for next date in table A.</description>
      <pubDate>Mon, 27 Nov 2017 13:01:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416366#M280244</guid>
      <dc:creator>aminkarimid</dc:creator>
      <dc:date>2017-11-27T13:01:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to eliminate a day and a day after it based on date observations in another table?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416369#M280245</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data WORK.TABLEA;
infile datalines dsd truncover;
input name:$3. date:DATE9.;
format date DATE9.;
label name="name" date="date";
datalines4;
A, 7-May-08
A, 11-Jul-08
A, 3-Jan-09
A, 4-Jan-09
A, 8-Jul-09
A, 24-Jul-09
A, 8-Dec-09
B, 7-May-08
B, 10-May-08
B, 17-May-08
B, 24-May-08
B, 1-Jun-08
B, 18-Jun-08
B, 9-May-09
C, 7-Oct-09
C, 17-Oct-09
C, 25-Oct-09
C, 18-Nov-09
C, 4-Dec-09
C, 19-Dec-09
C, 9-May-10
C, 9-May-10
C, 10-May-10
;;;;
run;

data WORK.TABLEB;
infile datalines dsd truncover;
input name:$3. date:DATE9.;
format date DATE9.;
label name="name" date="date";
datalines4;
A,11-Jul-08
A,3-Jan-09
A,24-Jul-09
B,7-May-08
B,17-May-08
B,18-Jun-08
B,9-Jul-09
C,17-Oct-09
C,4-Dec-09
C,19-Dec-09
;;;;
run;
proc sort data=tablea out=tablea1 nodupkey;
by name date;
run;
proc sort data=tableb out=tableb1 nodupkey;
by name date;
run;
data want;
 merge  tablea1 tableb1(in=inb) ;
 by name date;
 if inb or (inb=0 and lag(inb)=1 and not first.name) then delete;;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 27 Nov 2017 13:13:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416369#M280245</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-11-27T13:13:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to eliminate a day and a day after it based on date observations in another table?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416593#M280246</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Now, I want to go one step further. If table A has another variable like time which is shown below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data WORK.TABLEA;
infile datalines dsd truncover;
input name:$3. date:DATE9. time:TIME8.;
format date DATE9. time TIME8.;
label name="name" date="date" time="time";
datalines4;
A, 7-May-08, 11:12:41
A, 11-Jul-08, 11:23:41
A, 3-Jan-09, 11:31:41
A, 4-Jan-09, 11:32:41
A, 8-Jul-09, 11:32:41
A, 24-Jul-09, 11:32:41
A, 8-Dec-09, 12:32:41
B, 7-May-08, 11:31:41
B, 10-May-08, 11:32:41
B, 17-May-08, 11:33:41
B, 24-May-08, 11:34:41
B, 1-Jun-08, 11:35:41
B, 18-Jun-08, 11:36:41
B, 9-May-09, 11:37:41
C, 7-Oct-09, 11:21:41
C, 17-Oct-09, 11:22:41
C, 25-Oct-09, 11:32:41
C, 18-Nov-09, 11:33:41
C, 4-Dec-09, 11:12:41
C, 19-Dec-09, 10:22:41
C, 9-May-10, 11:42:41
C, 9-May-10, 11:12:41
C, 10-May-10, 12:52:41
;;;;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using the nodupkey option is not a good solution to delete same observations. because there are maybe another variables like price, turnover, etc or the duplicate observations is important and must be on a table. So your last part of your code needs to recognize observations with the same date which should be deleted and then delete them.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Nov 2017 08:11:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416593#M280246</guid>
      <dc:creator>aminkarimid</dc:creator>
      <dc:date>2017-11-28T08:11:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to eliminate a day and a day after it based on date observations in another table?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416670#M280247</link>
      <description>&lt;P&gt;That is to say you don't like to use PROC SORT ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data WORK.TABLEA;
infile datalines dsd truncover;
input name:$3. date:DATE9.;
format date DATE9.;
label name="name" date="date";
datalines4;
A, 7-May-08
A, 11-Jul-08
A, 3-Jan-09
A, 4-Jan-09
A, 8-Jul-09
A, 24-Jul-09
A, 8-Dec-09
B, 7-May-08
B, 10-May-08
B, 17-May-08
B, 24-May-08
B, 1-Jun-08
B, 18-Jun-08
B, 9-May-09
C, 7-Oct-09
C, 17-Oct-09
C, 25-Oct-09
C, 18-Nov-09
C, 4-Dec-09
C, 19-Dec-09
C, 9-May-10
C, 9-May-10
C, 10-May-10
;;;;
run;

data WORK.TABLEB;
infile datalines dsd truncover;
input name:$3. date:DATE9.;
format date DATE9.;
label name="name" date="date";
datalines4;
A,11-Jul-08
A,3-Jan-09
A,24-Jul-09
B,7-May-08
B,17-May-08
B,18-Jun-08
B,9-Jul-09
C,17-Oct-09
C,4-Dec-09
C,19-Dec-09
;;;;
run;
data temp;
 set tableb(in=inb) tablea;
 by name date;
 group+first.date;
 _inb=inb;
run;
data key;
 set temp(where=(_inb=1));
 output;
 group=group+1;
 output;
 keep name group;
run;
proc sql;
select *
 from temp 
  where catx(' ',name,group) not in
   (select catx(' ',name,group) from key);
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 28 Nov 2017 13:04:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-eliminate-a-day-and-a-day-after-it-based-on-date/m-p/416670#M280247</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-11-28T13:04:59Z</dc:date>
    </item>
  </channel>
</rss>

