<?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: selecting a specific sequence of a variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/selecting-a-specific-sequence-of-a-variable/m-p/348437#M80682</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want(drop=flag);&lt;BR /&gt;do &amp;nbsp;until (last.sequence);&lt;BR /&gt;set have end=last;&lt;BR /&gt;by sequence notsorted;&lt;BR /&gt;retain flag;&lt;BR /&gt;if last.sequence and sequence=1 and not last then do;&lt;BR /&gt;output;&lt;BR /&gt;flag=1;&lt;BR /&gt;end;&lt;BR /&gt;else if first.sequence and flag then do;&lt;BR /&gt;output;&lt;BR /&gt;flag=0;&lt;BR /&gt;end;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Naveen Srinivasan&lt;/P&gt;</description>
    <pubDate>Sat, 08 Apr 2017 18:46:58 GMT</pubDate>
    <dc:creator>novinosrin</dc:creator>
    <dc:date>2017-04-08T18:46:58Z</dc:date>
    <item>
      <title>selecting a specific sequence of a variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-a-specific-sequence-of-a-variable/m-p/348417#M80671</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I have the following data:&lt;/P&gt;
&lt;PRE&gt;data have;
input number sequence @@;
datalines;
1 1 2 1 3 1 4 2 5 1 6 2
7 1 8 1 9 3 10 1
;
run;&lt;/PRE&gt;
&lt;P&gt;What I would like to obtain are the observations for which the sequence =1 and the sequence of the number right after it is greater than 1:&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 96pt;" border="0" width="128" cellspacing="0" cellpadding="0"&gt;&lt;COLGROUP&gt;&lt;COL style="width: 48pt;" span="2" width="64" /&gt; &lt;/COLGROUP&gt;
&lt;TBODY&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD width="64" height="20" style="height: 15.0pt; width: 48pt;"&gt;number&lt;/TD&gt;
&lt;TD width="64" style="width: 48pt;"&gt;sequence&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" align="right" style="height: 15.0pt;"&gt;3&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" align="right" style="height: 15.0pt;"&gt;4&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" align="right" style="height: 15.0pt;"&gt;5&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" align="right" style="height: 15.0pt;"&gt;6&lt;/TD&gt;
&lt;TD align="right"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" align="right" style="height: 15.0pt;"&gt;8&lt;/TD&gt;
&lt;TD align="right"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 15.0pt;"&gt;
&lt;TD height="20" align="right" style="height: 15.0pt;"&gt;9&lt;/TD&gt;
&lt;TD align="right"&gt;3&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I was trying to solve this problem with a temporary array that serves as a rolling window:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
array seq [2] _temporary_;

seq [*] = sequence;
if seq[2] &amp;gt; 1 and seq[1] = 1;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;But was getting an error for the part "seq[*] = sequence" that "Expecting an arihmetic expression"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Sat, 08 Apr 2017 14:52:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-a-specific-sequence-of-a-variable/m-p/348417#M80671</guid>
      <dc:creator>ilikesas</dc:creator>
      <dc:date>2017-04-08T14:52:24Z</dc:date>
    </item>
    <item>
      <title>Re: selecting a specific sequence of a variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-a-specific-sequence-of-a-variable/m-p/348419#M80672</link>
      <description>&lt;P&gt;One way to solve it is by using the lag function. e.g.:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data want (keep=out: rename=(out_sequence=sequence out_number=number));
  set have;
  last_sequence=lag(sequence);
  last_number=lag(number);
  if last_sequence eq 1 and sequence gt 1 then do;
    out_sequence=last_sequence;
    out_number=last_number;
    output;
    out_sequence=sequence;
    out_number=number;
    output;
  end;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Sat, 08 Apr 2017 15:26:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-a-specific-sequence-of-a-variable/m-p/348419#M80672</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-08T15:26:25Z</dc:date>
    </item>
    <item>
      <title>Re: selecting a specific sequence of a variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-a-specific-sequence-of-a-variable/m-p/348425#M80676</link>
      <description>&lt;P&gt;And here is another way to obtain the same result .. although I think using my first suggestion would be slightly faster:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data want (drop=_:);
  merge have have(firstobs=2 keep=sequence rename=(sequence=_sequence));
  retain _next;
  if sequence eq 1 and _sequence gt 1 then do;
    output;
    _next=1;
  end;
  else if _next then do;
    output;
    _next=0;
  end;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Sat, 08 Apr 2017 16:07:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-a-specific-sequence-of-a-variable/m-p/348425#M80676</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-08T16:07:01Z</dc:date>
    </item>
    <item>
      <title>Re: selecting a specific sequence of a variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-a-specific-sequence-of-a-variable/m-p/348437#M80682</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want(drop=flag);&lt;BR /&gt;do &amp;nbsp;until (last.sequence);&lt;BR /&gt;set have end=last;&lt;BR /&gt;by sequence notsorted;&lt;BR /&gt;retain flag;&lt;BR /&gt;if last.sequence and sequence=1 and not last then do;&lt;BR /&gt;output;&lt;BR /&gt;flag=1;&lt;BR /&gt;end;&lt;BR /&gt;else if first.sequence and flag then do;&lt;BR /&gt;output;&lt;BR /&gt;flag=0;&lt;BR /&gt;end;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Naveen Srinivasan&lt;/P&gt;</description>
      <pubDate>Sat, 08 Apr 2017 18:46:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-a-specific-sequence-of-a-variable/m-p/348437#M80682</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-04-08T18:46:58Z</dc:date>
    </item>
  </channel>
</rss>

