<?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 Collapse two observation by ID and condition in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623583#M183609</link>
    <description>&lt;P&gt;Hello there,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am try to collapse two observation by group and condition&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Annotation .png" style="width: 305px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/35976i3C8212926E3E352B/image-size/large?v=v2&amp;amp;px=999" role="button" title="Annotation .png" alt="Annotation .png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;When the Id is the same, and Type for both observation is repeat ,and the date different is within 1 month .&lt;/P&gt;&lt;P&gt;Then collapse two observation and only keep the early date.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;id&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;amount&amp;nbsp;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;date&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;type&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2017-01-01&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2018-01-01&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2018-01-17&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2017-01-01&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2018-01-01&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2019-01-01&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2001-01-05&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2020-01-03&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2020-04-01&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
    <pubDate>Mon, 10 Feb 2020 18:40:51 GMT</pubDate>
    <dc:creator>phantomofshell</dc:creator>
    <dc:date>2020-02-10T18:40:51Z</dc:date>
    <item>
      <title>Collapse two observation by ID and condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623583#M183609</link>
      <description>&lt;P&gt;Hello there,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am try to collapse two observation by group and condition&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Annotation .png" style="width: 305px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/35976i3C8212926E3E352B/image-size/large?v=v2&amp;amp;px=999" role="button" title="Annotation .png" alt="Annotation .png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;When the Id is the same, and Type for both observation is repeat ,and the date different is within 1 month .&lt;/P&gt;&lt;P&gt;Then collapse two observation and only keep the early date.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;id&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;amount&amp;nbsp;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;date&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;type&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2017-01-01&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2018-01-01&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2018-01-17&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2017-01-01&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2018-01-01&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2019-01-01&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2001-01-05&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2020-01-03&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2020-04-01&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Mon, 10 Feb 2020 18:40:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623583#M183609</guid>
      <dc:creator>phantomofshell</dc:creator>
      <dc:date>2020-02-10T18:40:51Z</dc:date>
    </item>
    <item>
      <title>Re: Collapse two observation by ID and condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623584#M183610</link>
      <description>&lt;P&gt;HI&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/309805"&gt;@phantomofshell&lt;/a&gt;&amp;nbsp; Please post the sample as plain text to make it convenient for community members to copay/paste and work on the solution. Pics make it impossible.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Feb 2020 15:28:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623584#M183610</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-02-10T15:28:33Z</dc:date>
    </item>
    <item>
      <title>Re: Collapse two observation by ID and condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623646#M183639</link>
      <description>&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;id&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;amount&amp;nbsp;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;date&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;type&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2017-01-01&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2018-01-01&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2018-01-17&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2017-01-01&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2018-01-01&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2019-01-01&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2001-01-05&lt;/TD&gt;&lt;TD&gt;repeat&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2020-01-03&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2020-04-01&lt;/TD&gt;&lt;TD&gt;new&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;new to the community , sorry&lt;/P&gt;</description>
      <pubDate>Mon, 10 Feb 2020 17:48:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623646#M183639</guid>
      <dc:creator>phantomofshell</dc:creator>
      <dc:date>2020-02-10T17:48:30Z</dc:date>
    </item>
    <item>
      <title>Re: Collapse two observation by ID and condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623654#M183642</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/309805"&gt;@phantomofshell&lt;/a&gt;&amp;nbsp; Welcome to SAS communities. To make it easy, I am herewith providing a traditional rather 2 step solution for reading ease and convenience.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Logic:&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. Determine the repeat groups that are consecutive and check for the sets of 2&lt;/P&gt;
&lt;P&gt;2. Should the date difference within a set of 2 is less than a month, group that set as 1&lt;/P&gt;
&lt;P&gt;3. Iterate the same logic to identify different sets of grps that satisfy condition2 and increment the grp number accordindly&lt;/P&gt;
&lt;P&gt;4. The result sets the base for a simple Summary stats to sum the group and take the earliest number within that group. This is what the Proc SQL does&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

data have;
input id 	amount  	date :yymmdd10. 	type $;
format date yymmdd10.;
cards;
1	5	2017-01-01	new
1	5	2018-01-01	repeat
1	1	2018-01-17	repeat
2	1	2017-01-01	new
2	1	2018-01-01	repeat
2	1	2019-01-01	repeat
3	2	2001-01-05	repeat
3	2	2020-01-03	new
3	2	2020-04-01	new
;

data temp;
 set have;
 by id type notsorted;
 retain grp prev_date;
 if first.id then grp=0;
 if first.type and type='repeat' then do;
   grp=1;
   prev_date=date;
 end;
 else if type='repeat' and intck('mon',prev_date,date,'c')&amp;gt;1 then do;
  grp+1;
  prev_date=date;
 end;
 else if type ne 'repeat' then grp=0;
 drop prev_date;
run;
proc sql;
create table want(drop=sum) as
select id,sum( case when type='repeat' then amount else . end) as sum,
ifn(type='repeat',calculated sum,amount) as amount,date,type
from temp
group by id,grp
having min(date)=date and grp or not grp
order by  id,date;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;See if the above helps and let us know.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also, Your sample leads to some assumptions that can be best helped if you can clarify:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. Within a ID group, can exist a scenario like below?&lt;/P&gt;
&lt;P&gt;1 5 2018-01-01 repeat&lt;BR /&gt;1 1 2018-01-17 repeat&lt;BR /&gt;1 4 2018-01-19 repeat&lt;BR /&gt;1 6 2018-01-22 repeat&lt;/P&gt;
&lt;P&gt;So if yes, does this make it 2 sets of two obs or all 4 belongs to one set making it a sum(5,1,4,6)=16 with date 2018-01-01 ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. Two obs combining to one as stated in the subject line can make the situation highly ambiguous as sometimes what if 2&amp;amp;3 can make an independent set leaving 1 and 4. How would you want to handle this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would request you to review the requirement diligently&lt;/P&gt;</description>
      <pubDate>Mon, 10 Feb 2020 21:23:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623654#M183642</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-02-10T21:23:34Z</dc:date>
    </item>
    <item>
      <title>Re: Collapse two observation by ID and condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623723#M183669</link>
      <description>&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token datalines"&gt;&lt;SPAN class="token data string"&gt;1	5	2017-01-01	new
1	5	201&lt;/SPAN&gt;7&lt;SPAN class="token data string"&gt;-01-0&lt;/SPAN&gt;15&lt;SPAN class="token data string"&gt;	repeat
1	1	2018-01-17	repeat
2	1	2017-01-01	new
2	1	2018-01-01	repeat
2	1	2019-01-01	repeat
3	2	2001-01-05	repeat
3	2	2020-01-03	new
3	2	2020-04-01	new&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Thanks for your help novionosrin, what if I would like to change the condition say :for the same id&amp;nbsp; if previous type&amp;nbsp; within 1 month= new and&amp;nbsp; current type = repeat, then I collapse the two as what we did before&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Feb 2020 23:32:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623723#M183669</guid>
      <dc:creator>phantomofshell</dc:creator>
      <dc:date>2020-02-10T23:32:43Z</dc:date>
    </item>
    <item>
      <title>Re: Collapse two observation by ID and condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623734#M183675</link>
      <description>&lt;P&gt;What should the output look like, would the collapsed summed record take thew date of NEW or REPEAT?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Or is the below assumption is what it is:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input id 	amount  	date :yymmdd10. 	type $;
format date yymmdd10.;
cards;
1	5	2017-01-01	new
1	5	2017-01-015	repeat
1	1	2018-01-17	repeat
2	1	2017-01-01	new
2	1	2018-01-01	repeat
2	1	2019-01-01	repeat
3	2	2001-01-05	repeat
3	2	2020-01-03	new
3	2	2020-04-01	new
;

data temp;
 set have;
 by id ;
 retain grp prev_date;
 if first.id then grp=0;
 if  type='new' then do;
   grp+1;
   prev_date=date;
 end;
  if   lag(type) ne 'new'  and type='repeat' or
 type='repeat' and lag(type)='new' and intck('mon',prev_date,date,'c')
then  grp=0;
 drop prev_date;
run;

proc sql;
create table want(drop=sum) as
select id,sum(amount) as sum,
ifn(type='new',calculated sum,amount) as amount,date,type
from temp
group by id,grp
having min(date)=date and grp or not grp
order by  id,date;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Feb 2020 03:34:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623734#M183675</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-02-11T03:34:13Z</dc:date>
    </item>
    <item>
      <title>Re: Collapse two observation by ID and condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623903#M183728</link>
      <description>&lt;P&gt;This is the Original Set&lt;/P&gt;&lt;P&gt;1 5 2017-01-01 new&amp;nbsp;&lt;BR /&gt;1 5 2017-01-07 repeat&amp;nbsp;&lt;BR /&gt;1 1 2018-01-17 repeat&amp;nbsp;&lt;BR /&gt;2 1 2017-01-01 new&amp;nbsp;&lt;/P&gt;&lt;P&gt;2 1 2017-01-02 other&lt;BR /&gt;2 1 2018-01-01 repeat&amp;nbsp;&lt;BR /&gt;2 1 2018-01-07 repeat&amp;nbsp;&lt;BR /&gt;3 2 2001-01-05 repeat&amp;nbsp;&lt;BR /&gt;3 2 2020-01-03 new&amp;nbsp;&lt;BR /&gt;3 2 2020-04-01 new&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is the result&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1 10 2017-01-01 new&amp;nbsp;&lt;BR /&gt;1 1 2018-01-17 repeat&amp;nbsp;&lt;BR /&gt;2 1 2017-01-01 new&amp;nbsp;&lt;BR /&gt;2 1 2018-01-01 repeat&amp;nbsp;&lt;/P&gt;&lt;P&gt;2 1 2017-01-02 other&lt;BR /&gt;2 2 2018-01-01 repeat&amp;nbsp;&lt;BR /&gt;3 2 2001-01-05 repeat&amp;nbsp;&lt;BR /&gt;3 2 2020-01-03 new&amp;nbsp;&lt;BR /&gt;3 2 2020-04-01 new&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sorry about the ambiguous description.&amp;nbsp; Please be aware of there's other Type out there, so I added one other here.&lt;/P&gt;&lt;P&gt;The logic is simple, for one ID , if there are observations for new or repeat ,and these observations have time stamp within one month.&lt;/P&gt;&lt;P&gt;Then I consider those observation as one, so I add the amount and take the date and type of the first observation (timely most oldest)&lt;/P&gt;</description>
      <pubDate>Tue, 11 Feb 2020 16:38:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623903#M183728</guid>
      <dc:creator>phantomofshell</dc:creator>
      <dc:date>2020-02-11T16:38:47Z</dc:date>
    </item>
    <item>
      <title>Re: Collapse two observation by ID and condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623934#M183733</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/309805"&gt;@phantomofshell&lt;/a&gt;&amp;nbsp; Can you check the results for ID=2 in your latest post and let me know where the discrepancy is. If my understanding is correct, the below should come close. The only concern I have is sets of 2 or more within type(new,repeat)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;
input id 	amount  	date :yymmdd10. 	type $;
format date yymmdd10.;
cards;
1 5 2017-01-01 new 
1 5 2017-01-07 repeat 
1 1 2018-01-17 repeat 
2 1 2017-01-01 new 
2 1 2017-01-02 other
2 1 2018-01-01 repeat 
2 1 2018-01-07 repeat 
3 2 2001-01-05 repeat 
3 2 2020-01-03 new 
3 2 2020-04-01 new 
;


data want ;
 if _n_=1 then do;
  dcl hash H () ;
  h.definekey  ("date") ;
  h.definedata ("prev","curr","amount") ;
  h.definedone () ;
 end;
 do _n_=1 by 1 until(last.id);
  set have end=z;
  by id ;
  curr=date;
  _s=lag(amount);
  if type not in ('new','repeat') then prev=.;
  else if prev then do;
   if intck('mon',prev,curr,'c')&amp;lt;1 then do;
   	amount=sum(amount,_s);
	h.add(key:prev,data:prev,data:curr,data:amount);
	h.add(key:curr,data:prev,data:curr,data:amount);
   end;
	prev=date;
  end;
  else prev=date;
 end;
 do _n_=1 to _n_;
  set have;
  if h.find()=0 then do;
   if date=curr then continue;
   output;
  end;
  else output;
 end;
 h.clear();
 drop curr prev _s;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 11 Feb 2020 18:51:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/623934#M183733</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-02-11T18:51:24Z</dc:date>
    </item>
    <item>
      <title>Re: Collapse two observation by ID and condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/624035#M183758</link>
      <description>&lt;P&gt;Thanks so much for your help! It works&lt;/P&gt;</description>
      <pubDate>Tue, 11 Feb 2020 21:42:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Collapse-two-observation-by-ID-and-condition/m-p/624035#M183758</guid>
      <dc:creator>phantomofshell</dc:creator>
      <dc:date>2020-02-11T21:42:33Z</dc:date>
    </item>
  </channel>
</rss>

