<?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: Find Occurences in a loop in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513817#M138499</link>
    <description>&lt;P&gt;Runs like a champion!&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;</description>
    <pubDate>Fri, 16 Nov 2018 08:36:08 GMT</pubDate>
    <dc:creator>NikosStratis</dc:creator>
    <dc:date>2018-11-16T08:36:08Z</dc:date>
    <item>
      <title>Find Occurences in a loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513801#M138487</link>
      <description>&lt;P&gt;Hello all!&lt;/P&gt;&lt;P&gt;I have a brainteaser here…&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have sorted data where I mark an indicator by Z or X, depending on some condition.&lt;/P&gt;&lt;P&gt;From the sample data, I need to count the occurrences of X within the first field. If X occurs more than one time continuously, I need to count it as 1…&lt;/P&gt;&lt;P&gt;Any suggestions?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you in advance!&lt;/P&gt;&lt;P&gt;I am on SAS 9.2 using DI 4.21&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;sample:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;000017861&lt;/TD&gt;&lt;TD&gt;0001&lt;/TD&gt;&lt;TD&gt;120&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017861&lt;/TD&gt;&lt;TD&gt;0002&lt;/TD&gt;&lt;TD&gt;160&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017861&lt;/TD&gt;&lt;TD&gt;0003&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017861&lt;/TD&gt;&lt;TD&gt;0004&lt;/TD&gt;&lt;TD&gt;190&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017861&lt;/TD&gt;&lt;TD&gt;0005&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017861&lt;/TD&gt;&lt;TD&gt;0006&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0001&lt;/TD&gt;&lt;TD&gt;120&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0002&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0003&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0004&lt;/TD&gt;&lt;TD&gt;190&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0005&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0006&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0007&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0008&lt;/TD&gt;&lt;TD&gt;190&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0009&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0010&lt;/TD&gt;&lt;TD&gt;190&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0011&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0012&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0013&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0014&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0015&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0016&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0017&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0018&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0019&lt;/TD&gt;&lt;TD&gt;180&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017869&lt;/TD&gt;&lt;TD&gt;0020&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017877&lt;/TD&gt;&lt;TD&gt;0001&lt;/TD&gt;&lt;TD&gt;120&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017877&lt;/TD&gt;&lt;TD&gt;0002&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017877&lt;/TD&gt;&lt;TD&gt;0003&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017877&lt;/TD&gt;&lt;TD&gt;0004&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017877&lt;/TD&gt;&lt;TD&gt;0005&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017877&lt;/TD&gt;&lt;TD&gt;0006&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017877&lt;/TD&gt;&lt;TD&gt;0007&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017877&lt;/TD&gt;&lt;TD&gt;0008&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017877&lt;/TD&gt;&lt;TD&gt;0009&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017877&lt;/TD&gt;&lt;TD&gt;0010&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017878&lt;/TD&gt;&lt;TD&gt;0001&lt;/TD&gt;&lt;TD&gt;120&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017878&lt;/TD&gt;&lt;TD&gt;0002&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017878&lt;/TD&gt;&lt;TD&gt;0003&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017878&lt;/TD&gt;&lt;TD&gt;0005&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017878&lt;/TD&gt;&lt;TD&gt;0007&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017878&lt;/TD&gt;&lt;TD&gt;0008&lt;/TD&gt;&lt;TD&gt;140&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;000017878&lt;/TD&gt;&lt;TD&gt;0010&lt;/TD&gt;&lt;TD&gt;180&lt;/TD&gt;&lt;TD&gt;Z&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Fri, 16 Nov 2018 07:42:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513801#M138487</guid>
      <dc:creator>NikosStratis</dc:creator>
      <dc:date>2018-11-16T07:42:07Z</dc:date>
    </item>
    <item>
      <title>Re: Find Occurences in a loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513805#M138490</link>
      <description>&lt;P&gt;Why is '1' in&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;000017877	0004	110	X	1&lt;/PRE&gt;
&lt;P&gt;I can't figure the rules when to restart counting.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For the first part, up to restarting the count&amp;nbsp;&lt;/P&gt;
&lt;P&gt;assuming variables are v1 v2 v3 vX counter you can&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
 set have;
       retain phase 0 counter;

      if vx = 'X' and phase=0 then do;
         phase=1;
         counter +1;
     end;
     if vx ne 'X' then phase = 0;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;can do:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Nov 2018 08:07:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513805#M138490</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2018-11-16T08:07:00Z</dc:date>
    </item>
    <item>
      <title>Re: Find Occurences in a loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513809#M138494</link>
      <description>&lt;P&gt;Please post test data in the form of a datastep, its not fun for me to have to type that in!&lt;/P&gt;
&lt;PRE&gt;data have;
  infile datalines dlm=" " missover;
  input id $ num_id $ val type $;
datalines;
000017861 0001 120 Z    
000017861 0002 160 Z    
000017861 0003 110 X
000017861 0004 190 X
000017861 0005 110 X
000017861 0006 140 Z    
000017869 0001 120 Z    
000017869 0002 140 Z    
000017869 0003 110 X
000017869 0004 190 X
000017869 0005 110 X
000017869 0006 140 Z    
000017869 0007 110 X
000017869 0008 190 X
000017869 0009 110 X
000017869 0010 190 X
000017869 0011 110 X
;
run;

data want;
  set have;
  by id type notsorted;
  retain total curr;
  if first.id then total=0;
  if first.type and type="X" then do;
    total=total+1;
    curr=total;
  end;
  if first.type and type ne "X" then curr=.;
run;&lt;/PRE&gt;
&lt;P&gt;Basically keep a running total within id, and set a retained value based on type on or off.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Nov 2018 08:14:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513809#M138494</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2018-11-16T08:14:56Z</dc:date>
    </item>
    <item>
      <title>Re: Find Occurences in a loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513810#M138495</link>
      <description>&lt;P&gt;Thank you for you quick response. The 1 is not part of the data. I put it there to show the result that I need.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Nov 2018 08:20:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513810#M138495</guid>
      <dc:creator>NikosStratis</dc:creator>
      <dc:date>2018-11-16T08:20:20Z</dc:date>
    </item>
    <item>
      <title>Re: Find Occurences in a loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513812#M138496</link>
      <description>&lt;P&gt;Thank you for your quick response! Sorry about that! I attached a sample file and tried to copy data in the original message...&lt;/P&gt;&lt;P&gt;I will try the solution!&lt;/P&gt;</description>
      <pubDate>Fri, 16 Nov 2018 08:21:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513812#M138496</guid>
      <dc:creator>NikosStratis</dc:creator>
      <dc:date>2018-11-16T08:21:44Z</dc:date>
    </item>
    <item>
      <title>Re: Find Occurences in a loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513817#M138499</link>
      <description>&lt;P&gt;Runs like a champion!&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Fri, 16 Nov 2018 08:36:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513817#M138499</guid>
      <dc:creator>NikosStratis</dc:creator>
      <dc:date>2018-11-16T08:36:08Z</dc:date>
    </item>
    <item>
      <title>Re: Find Occurences in a loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513818#M138500</link>
      <description>Figured it out!&lt;BR /&gt;Thanks a lot!!!</description>
      <pubDate>Fri, 16 Nov 2018 08:39:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-Occurences-in-a-loop/m-p/513818#M138500</guid>
      <dc:creator>NikosStratis</dc:creator>
      <dc:date>2018-11-16T08:39:03Z</dc:date>
    </item>
  </channel>
</rss>

