<?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: count events in one dataset between two visits in another dataset in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767250#M243221</link>
    <description>&lt;P&gt;the 4 for visit #3 is counting events after visit 2 and before or on visit 3, i.e. in &lt;STRONG&gt;(&lt;/STRONG&gt;17SEP2020, 01OCT2020&lt;STRONG&gt;].&lt;/STRONG&gt;&amp;nbsp;In my example, there were 4 events which were after 17SEP2020 and before or on 01OCT2020:&lt;/P&gt;
&lt;P&gt;1 Yes 20SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 23SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 26SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 29SEP2020&lt;/P&gt;</description>
    <pubDate>Sun, 12 Sep 2021 11:52:28 GMT</pubDate>
    <dc:creator>fengyuwuzu</dc:creator>
    <dc:date>2021-09-12T11:52:28Z</dc:date>
    <item>
      <title>count events in one dataset between two visits in another dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767239#M243213</link>
      <description>&lt;P&gt;I have two datasets, in dataset A I have 3 columns: ID, event ("Yes") and event date:&lt;/P&gt;
&lt;P&gt;id event event_date&lt;/P&gt;
&lt;P&gt;1 Yes 01SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 03SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 08SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 10SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 17SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 20SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 23SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 26SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 29SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 02OCT2020&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;and in dataset B I have 3 columns: ID, visit number and visit date:&lt;/P&gt;
&lt;P&gt;id visit visit_date&lt;/P&gt;
&lt;P&gt;1 1 03SEP2020&lt;/P&gt;
&lt;P&gt;1 2 17SEP2020&lt;/P&gt;
&lt;P&gt;1 3&amp;nbsp; 01OCT2020&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;I want to count how many events ("Yes") in dataset A between two visit dates in dataset B, i.e. for visit 1, number of events on or before visit 1 visit_date, for visit 2, number of event after visit 1 date and on/before visit 2 date; in the above example, I want:&lt;/P&gt;
&lt;P&gt;id visit event_count&lt;/P&gt;
&lt;P&gt;1 1 2&lt;/P&gt;
&lt;P&gt;1 2 3&lt;/P&gt;
&lt;P&gt;1 3 4&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How should I count it? Merge by ID and retain visit_date?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Sep 2021 03:56:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767239#M243213</guid>
      <dc:creator>fengyuwuzu</dc:creator>
      <dc:date>2021-09-12T03:56:56Z</dc:date>
    </item>
    <item>
      <title>Re: count events in one dataset between two visits in another dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767244#M243215</link>
      <description>&lt;P&gt;Can you explicit what the 4 in the result is counting?&lt;/P&gt;</description>
      <pubDate>Sun, 12 Sep 2021 06:58:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767244#M243215</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2021-09-12T06:58:09Z</dc:date>
    </item>
    <item>
      <title>Re: count events in one dataset between two visits in another dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767250#M243221</link>
      <description>&lt;P&gt;the 4 for visit #3 is counting events after visit 2 and before or on visit 3, i.e. in &lt;STRONG&gt;(&lt;/STRONG&gt;17SEP2020, 01OCT2020&lt;STRONG&gt;].&lt;/STRONG&gt;&amp;nbsp;In my example, there were 4 events which were after 17SEP2020 and before or on 01OCT2020:&lt;/P&gt;
&lt;P&gt;1 Yes 20SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 23SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 26SEP2020&lt;/P&gt;
&lt;P&gt;1 Yes 29SEP2020&lt;/P&gt;</description>
      <pubDate>Sun, 12 Sep 2021 11:52:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767250#M243221</guid>
      <dc:creator>fengyuwuzu</dc:creator>
      <dc:date>2021-09-12T11:52:28Z</dc:date>
    </item>
    <item>
      <title>Re: count events in one dataset between two visits in another dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767251#M243222</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I had a couple of minutes spare time but could not solve quickly and need to start doing something else now.&lt;/P&gt;
&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/56807"&gt;@fengyuwuzu&lt;/a&gt;&amp;nbsp;: people are more inclined to answer if you include your data with datalines.&lt;/P&gt;
&lt;P&gt;Like I do below for other members that want to give it a try.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data work.A;
input id $ event $ event_date date9.;
format event_date date9.;
cards;
1 Yes 01SEP2020
1 Yes 03SEP2020
1 Yes 08SEP2020
1 Yes 10SEP2020
1 Yes 17SEP2020
1 Yes 20SEP2020
1 Yes 23SEP2020
1 Yes 26SEP2020
1 Yes 29SEP2020
1 Yes 02OCT2020
;
run;

data work.B;
input id $ visit visit_date date9.;
format visit_date date9.;
cards;
1 1 03SEP2020
1 2 17SEP2020
1 3 01OCT2020
;
run;
/* more to come */
/* end of program */&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Koen&lt;/P&gt;</description>
      <pubDate>Sun, 12 Sep 2021 12:39:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767251#M243222</guid>
      <dc:creator>sbxkoenk</dc:creator>
      <dc:date>2021-09-12T12:39:30Z</dc:date>
    </item>
    <item>
      <title>Re: count events in one dataset between two visits in another dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767286#M243243</link>
      <description>&lt;P&gt;I believe this will do what you're looking for but someone else may have a more elegant solution.&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data work.A;
input id $ event $ event_date date9.;
format event_date date9.;
cards;
1 Yes 01SEP2020
1 Yes 03SEP2020
1 Yes 08SEP2020
1 Yes 10SEP2020
1 Yes 17SEP2020
1 Yes 20SEP2020
1 Yes 23SEP2020
1 Yes 26SEP2020
1 Yes 29SEP2020
1 Yes 02OCT2020
;
run;

data work.B;
input id $ visit visit_date date9.;
format visit_date date9.;
cards;
1 1 03SEP2020
1 2 17SEP2020
1 3 01OCT2020
;
run;

proc transpose data=B out=B_t prefix=visit;
	by ID;
	var visit_date;
	id visit;
run;

proc sql;	
	create table joined as select a.*, b.visit1, b.visit2, b.visit3
		from a as a 
		left join b_t as b
		on b.id=a.id;
quit;

data joined2;
	set joined;
	if event_date &amp;lt;= visit1 then flag1=1;
	if visit1 &amp;lt; event_date &amp;lt;= visit2 then flag2=1;
	if visit2 &amp;lt; event_date &amp;lt;= visit3 then flag3=1;
run;

proc sql; 
	create table summed as 
	select id, sum(flag1) as visit1, sum(flag2) as visit2, sum(flag3) as visit3
		from joined2
		group by id;
		
quit;

proc transpose data=summed out=summed_t(rename=(col1=event_count));
	var visit1 visit2 visit3;
	by id;
run;

data want;
	set summed_t;
	visit=input(substr(_name_,6),4.);
	drop _name_;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 12 Sep 2021 20:17:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767286#M243243</guid>
      <dc:creator>tarheel13</dc:creator>
      <dc:date>2021-09-12T20:17:50Z</dc:date>
    </item>
    <item>
      <title>Re: count events in one dataset between two visits in another dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767298#M243251</link>
      <description>&lt;P&gt;I figured out one way to do this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data work.A;
input id $ event $ event_date date9.;
format event_date date9.;
cards;
1 Yes 01SEP2020
1 Yes 03SEP2020
1 Yes 08SEP2020
1 Yes 10SEP2020
1 Yes 17SEP2020
1 Yes 20SEP2020
1 Yes 23SEP2020
1 Yes 26SEP2020
1 Yes 29SEP2020
1 Yes 02OCT2020
;
run;

data work.B;
input id $ visit visit_date date9.;
format visit_date date9.;
cards;
1 1 03SEP2020
1 2 17SEP2020
1 3 01OCT2020
;
run;


proc sql;
create table test1 as
select b.id, b.visit, count(event) as count
from a as a, b as b
where a.id=b.id and event_date &amp;lt;=visit_date
group by b.id, visit
order by b.id, visit;
quit;

data want;
set test1;
by id visit;
count2=count-lag(count);
if first.id then count2=count;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 13 Sep 2021 00:30:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767298#M243251</guid>
      <dc:creator>fengyuwuzu</dc:creator>
      <dc:date>2021-09-13T00:30:10Z</dc:date>
    </item>
    <item>
      <title>Re: count events in one dataset between two visits in another dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767332#M243271</link>
      <description>&lt;P&gt;Another way:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data WANT;
  set EVENTS(in=E rename=(EVENT_DATE=DATE))
      VISITS(in=V rename=(VISIT_DATE=DATE));
  by DATE;
  retain _V;
  if VISIT then do;
    output;
    _V=VISIT;
    N=0;
  end;
  else N+1;
  keep ID VISIT N;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="branch"&gt;
&lt;DIV&gt;
&lt;DIV align="left"&gt;
&lt;TABLE class="table" summary="Procedure Print: Data Set WORK.WANT" frame="box" rules="all" cellspacing="0" cellpadding="5"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="l header" scope="col"&gt;ID&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;VISIT&lt;/TH&gt;
&lt;TH class="r header" scope="col"&gt;N&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;2&lt;/TD&gt;
&lt;TD class="r data"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="l data"&gt;1&lt;/TD&gt;
&lt;TD class="r data"&gt;3&lt;/TD&gt;
&lt;TD class="r data"&gt;4&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Sep 2021 06:41:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767332#M243271</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2021-09-13T06:41:20Z</dc:date>
    </item>
    <item>
      <title>Re: count events in one dataset between two visits in another dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767333#M243272</link>
      <description>&lt;P&gt;Oh I forgot to deal with IDs. Use&amp;nbsp;&amp;nbsp;&lt;FONT face="courier new,courier"&gt;by ID DATE;&lt;/FONT&gt;&amp;nbsp; and reset all with each new ID by testing &lt;FONT face="courier new,courier"&gt;first.ID&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Sep 2021 06:45:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/count-events-in-one-dataset-between-two-visits-in-another/m-p/767333#M243272</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2021-09-13T06:45:46Z</dc:date>
    </item>
  </channel>
</rss>

