<?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: Collapsing observations based on allowable gaps in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454947#M14042</link>
    <description>&lt;P&gt;Imported dataset variables (with a set statement) are overwritten when the set statement executes. Other variables (such as &lt;EM&gt;gDays&lt;/EM&gt; above) are reset to&amp;nbsp;missing at the beginning of&amp;nbsp;the implicit dataset loop (unless they are RETAINed).&lt;/P&gt;</description>
    <pubDate>Tue, 17 Apr 2018 22:10:30 GMT</pubDate>
    <dc:creator>PGStats</dc:creator>
    <dc:date>2018-04-17T22:10:30Z</dc:date>
    <item>
      <title>Collapsing observations based on allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454585#M14024</link>
      <description>&lt;P&gt;I have a dataset (created after bunch of data management steps) which is arranged as below. The gap indicator shows the number of gap days ( 1 indicates gap). Now, I would want to allow a gap of 30 days (i.e., I would count them as having no gap if the gap is less than or equal to 30 days). I have tried a few things (used retain, lag statements), but haven't been able to do so.&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Gap_indicator&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Days&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;20&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;40&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is how the dataset is laid out. My expected output is (I want to add 30 days of gap to the previous no gap days)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Gap_indicator&lt;/TD&gt;&lt;TD&gt;Days&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;270&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;90&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;I am not able to figure out how to do this. Your help would be much appreciated. Thank you!&lt;/P&gt;</description>
      <pubDate>Mon, 16 Apr 2018 21:48:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454585#M14024</guid>
      <dc:creator>Mahip</dc:creator>
      <dc:date>2018-04-16T21:48:20Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing observations based on allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454587#M14025</link>
      <description>&lt;P&gt;Post what you've tried so far please.&lt;/P&gt;</description>
      <pubDate>Mon, 16 Apr 2018 21:58:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454587#M14025</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-04-16T21:58:55Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing observations based on allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454594#M14027</link>
      <description>&lt;P&gt;Based on some of the readings, I did the following:&lt;/P&gt;&lt;P&gt;data test;&lt;BR /&gt;set problem;&lt;BR /&gt;by id;&lt;BR /&gt;lg_days=lag(days);&lt;BR /&gt;if first.id then lg_days=.;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data test1;&lt;BR /&gt;merge test test (firstobs=2 rename=(id =id2 days=new_days gap=gap2));&lt;BR /&gt;if id ne id2 then new_days=.;&lt;BR /&gt;drop id2 gap2;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I created a dataset by bringing the next observation in the same line. I am, however, struggling to collapse the observations with respect to 30 days allowable gap.&lt;/P&gt;</description>
      <pubDate>Mon, 16 Apr 2018 22:30:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454594#M14027</guid>
      <dc:creator>Mahip</dc:creator>
      <dc:date>2018-04-16T22:30:23Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing observations based on allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454619#M14028</link>
      <description>&lt;P&gt;Try this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID $ Gap Days; 
datalines;
A 0 90 
A 1 20 
A 0 60 
A 1 10 
A 0 60 
A 1 40 
A 0 90 
;

data want;
gDays = 0;
do until(last.id);
    set have; by id;
    if gap then do;
        if days &amp;gt; 30 then do;
            gDays = gDays + 30;
            gGap = 0;
            output;
            gDays = days - 30;
            gGap = 1;
            output;
            gDays = 0;
            end;
        else gDays = gDays + days;
        end;
    else gDays = gDays + days;
    end;
if gDays &amp;gt; 0 then do;
    gGap = 0;
    output;
    end;
drop gap days;
rename gGap=Gap gDays=Days;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 17 Apr 2018 03:45:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454619#M14028</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2018-04-17T03:45:10Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing observations based on allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454945#M14041</link>
      <description>&lt;P&gt;This works! I will try to parse the codes. One thing I haven't understood so far is, what is the&amp;nbsp;difference between&amp;nbsp; initializing a variable before and after the set statement? Thank you once again.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Apr 2018 21:54:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454945#M14041</guid>
      <dc:creator>Mahip</dc:creator>
      <dc:date>2018-04-17T21:54:49Z</dc:date>
    </item>
    <item>
      <title>Re: Collapsing observations based on allowable gaps</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454947#M14042</link>
      <description>&lt;P&gt;Imported dataset variables (with a set statement) are overwritten when the set statement executes. Other variables (such as &lt;EM&gt;gDays&lt;/EM&gt; above) are reset to&amp;nbsp;missing at the beginning of&amp;nbsp;the implicit dataset loop (unless they are RETAINed).&lt;/P&gt;</description>
      <pubDate>Tue, 17 Apr 2018 22:10:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/Collapsing-observations-based-on-allowable-gaps/m-p/454947#M14042</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2018-04-17T22:10:30Z</dc:date>
    </item>
  </channel>
</rss>

