<?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: Flag events occuring on same date in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471676#M120846</link>
    <description>&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Post test data in the form of a datastep!!&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As such , this is not tested:&lt;/P&gt;
&lt;PRE&gt;proc sql;
  create table want as
  select a.*,
         case when b.id ne . then 1 else 0 end as flag
  from   have a
  left join have b 
  on     a.id=b.id
  and    a.date=b.date
  and    sum(a.event1,a.event2) ne sum(b.event1,b.event2);
quit;
&lt;/PRE&gt;
&lt;P&gt;So basically I am merging have back to itself where id and date match, but event 1 and 2 don't.&lt;/P&gt;</description>
    <pubDate>Wed, 20 Jun 2018 13:12:39 GMT</pubDate>
    <dc:creator>RW9</dc:creator>
    <dc:date>2018-06-20T13:12:39Z</dc:date>
    <item>
      <title>Flag events occuring on same date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471669#M120844</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have a dataset I want to identify if two events occurred on the same date. I am not sure how to even start.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My data look like this&lt;/P&gt;&lt;P&gt;ID&amp;nbsp; date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event1&amp;nbsp; event2&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp; 4/5/05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 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; 1&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp; 4/5/05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&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;1&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp; 4/6/05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp; 5/1/05&amp;nbsp;&amp;nbsp; &amp;nbsp; 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; 1&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp; 5/2/05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp; 5/2/05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;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; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to add a flag like this&lt;/P&gt;&lt;P&gt;ID&amp;nbsp; date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; event1&amp;nbsp; event2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Flag&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp; 4/5/05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 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; 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; 1&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp; 4/5/05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&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;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; 1&lt;/P&gt;&lt;P&gt;1&amp;nbsp;&amp;nbsp; 4/6/05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&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; 0&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp; 5/1/05&amp;nbsp;&amp;nbsp; &amp;nbsp; 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; 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; 0&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp; 5/2/05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 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; 1&lt;/P&gt;&lt;P&gt;2&amp;nbsp;&amp;nbsp; 5/2/05&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;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; 0&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;1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks much!&lt;/P&gt;</description>
      <pubDate>Wed, 20 Jun 2018 12:57:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471669#M120844</guid>
      <dc:creator>avepo</dc:creator>
      <dc:date>2018-06-20T12:57:13Z</dc:date>
    </item>
    <item>
      <title>Re: Flag events occuring on same date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471676#M120846</link>
      <description>&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Post test data in the form of a datastep!!&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As such , this is not tested:&lt;/P&gt;
&lt;PRE&gt;proc sql;
  create table want as
  select a.*,
         case when b.id ne . then 1 else 0 end as flag
  from   have a
  left join have b 
  on     a.id=b.id
  and    a.date=b.date
  and    sum(a.event1,a.event2) ne sum(b.event1,b.event2);
quit;
&lt;/PRE&gt;
&lt;P&gt;So basically I am merging have back to itself where id and date match, but event 1 and 2 don't.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Jun 2018 13:12:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471676#M120846</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2018-06-20T13:12:39Z</dc:date>
    </item>
    <item>
      <title>Re: Flag events occuring on same date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471680#M120847</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID  date  $    event1  event2;
cards;
1   4/5/05     1             1
1   4/5/05     0             1
1   4/6/05     0             0
2   5/1/05     1             1
2   5/2/05     0             1 
2   5/2/05     1             0
;
run;
data want;
 do until(last.date);
   set have;
   by id date;
   if event1 then has_event1=1;
   if event2 then has_event2=1;
 end;

  flag=0;

 do until(last.date);
   set have;
   by id date;
   if  has_event1 and has_event2 then flag=1;
   output;
 end;
 drop has_:;
 run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 20 Jun 2018 13:18:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471680#M120847</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-06-20T13:18:10Z</dc:date>
    </item>
    <item>
      <title>Re: Flag events occuring on same date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471687#M120849</link>
      <description>&lt;P&gt;Maybe my esteemed colleagues&amp;nbsp;@RW9 and&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;understand the problem and the meaning of event1 and event2 in the original table, but I do not understand what event1 and event2 are, or why I should care if we are truly looking at dates.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But here is my answer, ignoring the variables event1 and event2, and assuming the data is properly sorted&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc freq data=have;
    by id;
    tables date/out=a;
run;
data want;
    merge have a;
    by id date;
    if count&amp;gt;1 then flag=1; else flag=0;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Jun 2018 13:36:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471687#M120849</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2018-06-20T13:36:35Z</dc:date>
    </item>
    <item>
      <title>Re: Flag events occuring on same date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471700#M120852</link>
      <description>&lt;P&gt;Given the data are sorted by id/date, you just need&amp;nbsp;a way to look at the next date&amp;nbsp;(firstobs=2) and at the preceding date (lag(date)).&amp;nbsp; And you need a way to determine whether the record-in-hand is at the begin or end of an id group&amp;nbsp; (SET and BY statements):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID  date  $    event1  event2;
cards;
1   4/5/05     1             1
1   4/5/05     0             1
1   4/6/05     0             0
2   5/1/05     1             1
2   5/2/05     0             1 
2   5/2/05     1             0
;
run;


data want;
  set have (keep=id);
  by id;

  merge have have (firstobs=2 keep=date rename=(date=nxt_date));

  if  (date=nxt_date and last.id=0) or (date=lag(date) and first.id=0)
    then flag=1;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 20 Jun 2018 14:10:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471700#M120852</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2018-06-20T14:10:02Z</dc:date>
    </item>
    <item>
      <title>Re: Flag events occuring on same date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471705#M120854</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID  date  $    event1  event2;
cards;
1   4/5/05     1             1
1   4/5/05     0             1
1   4/6/05     0             0
2   5/1/05     1             1
2   5/2/05     0             1 
2   5/2/05     1             0
;
run;


proc sql;
create table want as
select *,sum(max(event1 , event2))&amp;gt;1 as flag
from have
group by id, date;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 20 Jun 2018 14:23:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/471705#M120854</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-06-20T14:23:55Z</dc:date>
    </item>
    <item>
      <title>Re: Flag events occuring on same date</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/473470#M121508</link>
      <description>&lt;P&gt;Thanks ! This was a great help!&lt;/P&gt;</description>
      <pubDate>Tue, 26 Jun 2018 16:46:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Flag-events-occuring-on-same-date/m-p/473470#M121508</guid>
      <dc:creator>avepo</dc:creator>
      <dc:date>2018-06-26T16:46:56Z</dc:date>
    </item>
  </channel>
</rss>

