<?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: Identify/keep true consecutive negative value after positive value in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Identify-keep-true-consecutive-negative-value-after-positive/m-p/632830#M187661</link>
    <description>&lt;P&gt;I got something like below but it's not working expected.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt; Test_Negative;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; Tests;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; Case;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; Test_Result^=&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt;"Negative"&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; T_Seq=&lt;/SPAN&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;else&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; Test_Result=&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt;"Negative"&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; T_Seq+&lt;/SPAN&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; first.Case &amp;amp; Test_Result^=&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt;"Negative"&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; T_Seq=&lt;/SPAN&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;else&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; first.Case &amp;amp; Test_Result=&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt;"Negative"&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; T_Seq+&lt;/SPAN&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 17 Mar 2020 23:35:08 GMT</pubDate>
    <dc:creator>Joshua017</dc:creator>
    <dc:date>2020-03-17T23:35:08Z</dc:date>
    <item>
      <title>Identify/keep true consecutive negative value after positive value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Identify-keep-true-consecutive-negative-value-after-positive/m-p/632824#M187655</link>
      <description>&lt;P&gt;I have about 200,000 records of cases and I want to identify the true consecutive Negative result (can't have Positive result after it).&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's some examples:&lt;/P&gt;&lt;P&gt;A: Keep only the result after first two positive (Obs 3-5)&lt;/P&gt;&lt;P&gt;B: Obs 6-7 need to be drop because these is a Positive after these Negative.&lt;/P&gt;&lt;P&gt;C: Need to be drop&lt;/P&gt;&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":anguished_face:"&gt;😧&lt;/span&gt; Only 15-17 can be keep since 13 have Positive after them as well.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The basic concept is to keep the Negative results after the last positive for each case (group?) and give them a seq# if possible.&lt;/P&gt;&lt;P&gt;Thank you so much for your help. I tried to add seq# but many times it starting with 2 or even 4 when I use&lt;/P&gt;&lt;P&gt;if first.Case then Seq+1;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Obs&lt;/TD&gt;&lt;TD&gt;Case&lt;/TD&gt;&lt;TD&gt;Test Date&lt;/TD&gt;&lt;TD&gt;Test Result&lt;/TD&gt;&lt;TD&gt;Record Wanted&lt;/TD&gt;&lt;TD&gt;Seq#&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;01/01/2020&lt;/TD&gt;&lt;TD&gt;Missing&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;01/02/2021&lt;/TD&gt;&lt;TD&gt;Positive&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;01/03/2021&lt;/TD&gt;&lt;TD&gt;Negative&lt;/TD&gt;&lt;TD&gt;V&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;01/04/2021&lt;/TD&gt;&lt;TD&gt;Negative&lt;/TD&gt;&lt;TD&gt;V&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;01/05/2021&lt;/TD&gt;&lt;TD&gt;Negative&lt;/TD&gt;&lt;TD&gt;V&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;01/01/2020&lt;/TD&gt;&lt;TD&gt;Negative&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;01/02/2021&lt;/TD&gt;&lt;TD&gt;Negative&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;01/03/2021&lt;/TD&gt;&lt;TD&gt;Positive&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;C&lt;/TD&gt;&lt;TD&gt;01/02/2021&lt;/TD&gt;&lt;TD&gt;Missing&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;TD&gt;　&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;01/01/2020&lt;/TD&gt;&lt;TD&gt;Positive&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;01/02/2021&lt;/TD&gt;&lt;TD&gt;Positive&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;01/03/2021&lt;/TD&gt;&lt;TD&gt;Missing&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;01/04/2021&lt;/TD&gt;&lt;TD&gt;Negative&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;01/01/2021&lt;/TD&gt;&lt;TD&gt;Positive&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;01/02/2022&lt;/TD&gt;&lt;TD&gt;Negative&lt;/TD&gt;&lt;TD&gt;V&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;01/03/2022&lt;/TD&gt;&lt;TD&gt;Negative&lt;/TD&gt;&lt;TD&gt;V&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;17&lt;/TD&gt;&lt;TD&gt;D&lt;/TD&gt;&lt;TD&gt;01/04/2022&lt;/TD&gt;&lt;TD&gt;Negative&lt;/TD&gt;&lt;TD&gt;V&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Tue, 17 Mar 2020 23:19:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Identify-keep-true-consecutive-negative-value-after-positive/m-p/632824#M187655</guid>
      <dc:creator>Joshua017</dc:creator>
      <dc:date>2020-03-17T23:19:00Z</dc:date>
    </item>
    <item>
      <title>Re: Identify/keep true consecutive negative value after positive value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Identify-keep-true-consecutive-negative-value-after-positive/m-p/632830#M187661</link>
      <description>&lt;P&gt;I got something like below but it's not working expected.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt; Test_Negative;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; Tests;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; Case;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; Test_Result^=&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt;"Negative"&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; T_Seq=&lt;/SPAN&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;else&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; Test_Result=&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt;"Negative"&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; T_Seq+&lt;/SPAN&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; first.Case &amp;amp; Test_Result^=&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt;"Negative"&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; T_Seq=&lt;/SPAN&gt;&lt;STRONG&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;else&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; first.Case &amp;amp; Test_Result=&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt;"Negative"&lt;/SPAN&gt; &lt;SPAN style="font-weight: 400;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="font-weight: 400;"&gt; T_Seq+&lt;/SPAN&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Mar 2020 23:35:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Identify-keep-true-consecutive-negative-value-after-positive/m-p/632830#M187661</guid>
      <dc:creator>Joshua017</dc:creator>
      <dc:date>2020-03-17T23:35:08Z</dc:date>
    </item>
    <item>
      <title>Re: Identify/keep true consecutive negative value after positive value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Identify-keep-true-consecutive-negative-value-after-positive/m-p/632834#M187664</link>
      <description>&lt;P&gt;Welcome to the SAS Communities.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You need to read the source table twice because you can only figure out which rows to select once you've processed the last row within a group.&lt;/P&gt;
&lt;P&gt;Below code should do what you're after.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  set have;
  by notsorted case;
  retain start_row n_row;
  if first.case then call missing(start_row, n_row);
  if Test_Result ne 'Negative' then call missing(start_row, n_row);
  else if missing(start_row) then start_row=_n_;
  if not missing(start_row) then n_row+1;
  if last.case and not missing(start_row) then 
    do;
      stop_row=start_row+n_row-1;
      do i=start_row to stop_row;
        set have point=i;
        output;
      end;
    end;
/*  drop start_row stop_row n_row i;*/
run;

proc print data=want;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 18 Mar 2020 00:17:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Identify-keep-true-consecutive-negative-value-after-positive/m-p/632834#M187664</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2020-03-18T00:17:59Z</dc:date>
    </item>
    <item>
      <title>Re: Identify/keep true consecutive negative value after positive value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Identify-keep-true-consecutive-negative-value-after-positive/m-p/632850#M187673</link>
      <description>&lt;P&gt;A double &lt;STRONG&gt;do until()&lt;/STRONG&gt; comes in handy for this task:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Obs Case :$1. Date :mmddyy10. Result :$12.;
format date yymmdd10.;
datalines;
1   A   01/01/2020  Missing 　   　
2   A   01/02/2021  Positive    　   　
3   A   01/03/2021  Negative    V   1
4   A   01/04/2021  Negative    V   2
5   A   01/05/2021  Negative    V   3
6   B   01/01/2020  Negative         
7   B   01/02/2021  Negative         
8   B   01/03/2021  Positive         
9   C   01/02/2021  Missing 　   　
10  D   01/01/2020  Positive         
11  D   01/02/2021  Positive         
12  D   01/03/2021  Missing      
13  D   01/04/2021  Negative         
14  D   01/01/2021  Positive         
15  D   01/02/2022  Negative    V   1
16  D   01/03/2022  Negative    V   2
17  D   01/04/2022  Negative    V   3
;

data want;
do n = 1 by 1 until (last.case);
	set have; by case;
	if result = "Negative" then do;
		if missing(firstPos) then firstPos = n;
		lastPos = n;
		end;
	else call missing(firstPos);
	end;
seq = 0;
do n = 1 by 1 until (last.case);
	set have; by case;
	if firstPos &amp;gt; 0 then
		if lastPos &amp;gt; firstPos + 1 and n &amp;gt;= firstPos then do;
			seq + 1;
			output;
			end;
	end;
drop n firstPos lastPos;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 18 Mar 2020 03:47:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Identify-keep-true-consecutive-negative-value-after-positive/m-p/632850#M187673</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2020-03-18T03:47:10Z</dc:date>
    </item>
    <item>
      <title>Re: Identify/keep true consecutive negative value after positive value</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Identify-keep-true-consecutive-negative-value-after-positive/m-p/632920#M187704</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Obs Case :$1. Date :mmddyy10. Result :$12.;
format date yymmdd10.;
datalines;
1   A   01/01/2020  Missing 　   　
2   A   01/02/2021  Positive    　   　
3   A   01/03/2021  Negative    V   1
4   A   01/04/2021  Negative    V   2
5   A   01/05/2021  Negative    V   3
6   B   01/01/2020  Negative         
7   B   01/02/2021  Negative         
8   B   01/03/2021  Positive         
9   C   01/02/2021  Missing 　   　
10  D   01/01/2020  Positive         
11  D   01/02/2021  Positive         
12  D   01/03/2021  Missing      
13  D   01/04/2021  Negative         
14  D   01/01/2021  Positive         
15  D   01/02/2022  Negative    V   1
16  D   01/03/2022  Negative    V   2
17  D   01/04/2022  Negative    V   3
;
data want;
do i=1 by 1 until(last.case);
 set have;
 by case ;
 if result='Positive' then  _i=i;
end;

do i=1 by 1 until(last.case);
 set have;
 by case result notsorted;
 if first.result then count=.;
 count+1;
 if i le _i or result ne 'Negative' then call missing(count);
 output;
end;
drop i _i;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 18 Mar 2020 11:41:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Identify-keep-true-consecutive-negative-value-after-positive/m-p/632920#M187704</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2020-03-18T11:41:24Z</dc:date>
    </item>
  </channel>
</rss>

