<?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: Extracting Observations before, during and after a dummy in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Extracting-Observations-before-during-and-after-a-dummy/m-p/874451#M345493</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input D	Var1	Var2	Dummy;
cards;
1	20	41	0
1	17	20	0
1	97	68	0
1	93	49	0
1	91	77	1
1	51	37	0
1	88	55	0
1	42	14	0
2	62	40	0
2	93	46	0
2	77	70	0
2	31	32	0
2	53	58	1
2	21	73	0
2	55	94	0
2	73	29	0
2	34	27	0
;
run;
proc print;
run;

data want;
  do _N_ = 1 by 1 until(last.d);
    set have curobs=curobs;
    by d;

    if Dummy then CO=curobs;
  end;

  do _N_ = 1 to _N_;
    set have curobs=curobs2;

    if CO-1 &amp;lt;= curobs2 &amp;lt;= CO+1 then output;
  end;
run;

proc print;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 08 May 2023 13:14:01 GMT</pubDate>
    <dc:creator>yabwon</dc:creator>
    <dc:date>2023-05-08T13:14:01Z</dc:date>
    <item>
      <title>Extracting Observations before, during and after a dummy</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Extracting-Observations-before-during-and-after-a-dummy/m-p/874445#M345490</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hope you are doing well. I have a question regarding how to extract observations before and after a dummy.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is what I have.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 192pt;" border="0" width="256" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" style="height: 15.0pt; width: 48pt;"&gt;ID&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" style="width: 48pt;"&gt;Var1&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" style="width: 48pt;"&gt;Var2&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" style="width: 48pt;"&gt;Dummy&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;1&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;20&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;41&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;1&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;17&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;20&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;1&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;97&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;68&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;&lt;FONT color="#FF0000"&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;93&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;49&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;&lt;FONT color="#FF0000"&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;91&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;77&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;&lt;FONT color="#FF0000"&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;51&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;37&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;1&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;88&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;55&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;1&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;42&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;14&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;2&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;62&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;40&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;2&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;93&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;46&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;2&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;77&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;70&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;&lt;FONT color="#FF0000"&gt;2&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;31&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;32&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;&lt;FONT color="#FF0000"&gt;2&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;53&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;58&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;1&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;&lt;FONT color="#FF0000"&gt;2&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;21&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;73&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;&lt;FONT color="#FF0000"&gt;0&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;2&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;55&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;94&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;2&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;73&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;29&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.85px" height="15px" align="right" style="height: 15.0pt;"&gt;2&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;34&lt;/TD&gt;
&lt;TD width="63.0167px" height="15px" align="right"&gt;27&lt;/TD&gt;
&lt;TD width="66.1167px" height="15px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What I need is to extract observation before, during, and after dummy variable indicating 1 (i.e., the text in red). So, the "want" dataset will be as below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 192pt;" border="0" width="256" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.9667px" height="20" style="height: 15.0pt; width: 48pt;"&gt;A&lt;/TD&gt;
&lt;TD width="62.9667px" style="width: 48pt;"&gt;B&lt;/TD&gt;
&lt;TD width="62.95px" style="width: 48pt;"&gt;C&lt;/TD&gt;
&lt;TD width="66.1167px" style="width: 48pt;"&gt;Dummy&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.9667px" height="20" align="right" style="height: 15.0pt;"&gt;1&lt;/TD&gt;
&lt;TD width="62.9667px" align="right"&gt;93&lt;/TD&gt;
&lt;TD width="62.95px" align="right"&gt;49&lt;/TD&gt;
&lt;TD width="66.1167px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.9667px" height="20" align="right" style="height: 15.0pt;"&gt;1&lt;/TD&gt;
&lt;TD width="62.9667px" align="right"&gt;91&lt;/TD&gt;
&lt;TD width="62.95px" align="right"&gt;77&lt;/TD&gt;
&lt;TD width="66.1167px" align="right"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.9667px" height="20" align="right" style="height: 15.0pt;"&gt;1&lt;/TD&gt;
&lt;TD width="62.9667px" align="right"&gt;51&lt;/TD&gt;
&lt;TD width="62.95px" align="right"&gt;37&lt;/TD&gt;
&lt;TD width="66.1167px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.9667px" height="20" align="right" style="height: 15.0pt;"&gt;2&lt;/TD&gt;
&lt;TD width="62.9667px" align="right"&gt;31&lt;/TD&gt;
&lt;TD width="62.95px" align="right"&gt;32&lt;/TD&gt;
&lt;TD width="66.1167px" align="right"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.9667px" height="20" align="right" style="height: 15.0pt;"&gt;2&lt;/TD&gt;
&lt;TD width="62.9667px" align="right"&gt;53&lt;/TD&gt;
&lt;TD width="62.95px" align="right"&gt;58&lt;/TD&gt;
&lt;TD width="66.1167px" align="right"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="62.9667px" height="20" align="right" style="height: 15.0pt;"&gt;2&lt;/TD&gt;
&lt;TD width="62.9667px" align="right"&gt;21&lt;/TD&gt;
&lt;TD width="62.95px" align="right"&gt;73&lt;/TD&gt;
&lt;TD width="66.1167px" align="right"&gt;0&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;
&lt;P&gt;&lt;BR /&gt;Best,&lt;BR /&gt;David&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2023 13:04:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Extracting-Observations-before-during-and-after-a-dummy/m-p/874445#M345490</guid>
      <dc:creator>DavidLie</dc:creator>
      <dc:date>2023-05-08T13:04:41Z</dc:date>
    </item>
    <item>
      <title>Re: Extracting Observations before, during and after a dummy</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Extracting-Observations-before-during-and-after-a-dummy/m-p/874450#M345492</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 Var1 Var2 Dummy;
datalines;
1 20 41 0
1 17 20 0
1 97 68 0
1 93 49 0
1 91 77 1
1 51 37 0
1 88 55 0
1 42 14 0
2 62 40 0
2 93 46 0
2 77 70 0
2 31 32 0
2 53 58 1
2 21 73 0
2 55 94 0
2 73 29 0
2 34 27 0
;

data want;
   merge have
         have(firstobs = 2 keep = dummy id rename = (dummy = lead_d id = lead_id));

   lag_d  = lag(dummy);
   lag_id = lag(id);

   if sum(dummy, lag_d, lead_d) and id = lag_id and id = lead_id;

   drop lead_: lag_:;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 08 May 2023 13:11:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Extracting-Observations-before-during-and-after-a-dummy/m-p/874450#M345492</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2023-05-08T13:11:39Z</dc:date>
    </item>
    <item>
      <title>Re: Extracting Observations before, during and after a dummy</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Extracting-Observations-before-during-and-after-a-dummy/m-p/874451#M345493</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input D	Var1	Var2	Dummy;
cards;
1	20	41	0
1	17	20	0
1	97	68	0
1	93	49	0
1	91	77	1
1	51	37	0
1	88	55	0
1	42	14	0
2	62	40	0
2	93	46	0
2	77	70	0
2	31	32	0
2	53	58	1
2	21	73	0
2	55	94	0
2	73	29	0
2	34	27	0
;
run;
proc print;
run;

data want;
  do _N_ = 1 by 1 until(last.d);
    set have curobs=curobs;
    by d;

    if Dummy then CO=curobs;
  end;

  do _N_ = 1 to _N_;
    set have curobs=curobs2;

    if CO-1 &amp;lt;= curobs2 &amp;lt;= CO+1 then output;
  end;
run;

proc print;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 08 May 2023 13:14:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Extracting-Observations-before-during-and-after-a-dummy/m-p/874451#M345493</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2023-05-08T13:14:01Z</dc:date>
    </item>
    <item>
      <title>Re: Extracting Observations before, during and after a dummy</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Extracting-Observations-before-during-and-after-a-dummy/m-p/874452#M345494</link>
      <description>&lt;P&gt;what about those little ugly ones (first or last in the group):&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;3 62 40 1
3 93 46 0
3 77 70 0
4 62 40 0
4 93 46 0
4 77 70 1&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;? &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt; &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BTW&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/25583"&gt;@DavidLie&lt;/a&gt;&amp;nbsp;Could we have such situation? And what about multiple dummy in one group?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2023 13:18:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Extracting-Observations-before-during-and-after-a-dummy/m-p/874452#M345494</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2023-05-08T13:18:31Z</dc:date>
    </item>
    <item>
      <title>Re: Extracting Observations before, during and after a dummy</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Extracting-Observations-before-during-and-after-a-dummy/m-p/874456#M345496</link>
      <description>&lt;P&gt;You should be able to use the FIRST./LAST. flags to do this.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  set have ;
  by id dummy notsorted;
  if dummy then output;
  else if (first.dummy and not first.id) then output;
  else if (last.dummy and not last.id) then output;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 08 May 2023 13:44:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Extracting-Observations-before-during-and-after-a-dummy/m-p/874456#M345496</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2023-05-08T13:44:09Z</dc:date>
    </item>
  </channel>
</rss>

