<?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: Counting cumulatively in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53443#M14771</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; So I've extended PG's proposal and I get what I'm looking for but it seems a roundabout way of doing it, any ideas of something "shorter" ? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;input hours eq ill$;&lt;BR /&gt;datalines;&lt;BR /&gt;0 10 B &lt;BR /&gt;25 10 A &lt;BR /&gt;86 10 A &lt;BR /&gt;86 10 B &lt;BR /&gt;86 10 D &lt;BR /&gt;225 10 A &lt;BR /&gt;225 10 B&amp;nbsp; &lt;BR /&gt;225 10 D &lt;BR /&gt;1264 10 A &lt;BR /&gt;1264 10 B &lt;BR /&gt;1264 10 D &lt;BR /&gt;1264 10 E &lt;BR /&gt;1264 10 C &lt;BR /&gt;0 20 A &lt;BR /&gt;16 20 A &lt;BR /&gt;57 20 A &lt;BR /&gt;57 20 B &lt;BR /&gt;57 20 D &lt;BR /&gt;57 20 C &lt;BR /&gt;161 20 A &lt;BR /&gt;161 20 B &lt;BR /&gt;161 20 C &lt;BR /&gt;161 20 E &lt;BR /&gt;887 20 A &lt;BR /&gt;887 20 C &lt;BR /&gt;887 20 E &lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;proc freq data=have noprint;&lt;BR /&gt;tables eq*ill*hours / sparse out=have0(drop=PERCENT);&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have1;&lt;BR /&gt;set have0;&lt;BR /&gt;by eq ill;&lt;BR /&gt;if first.ill then i = 0;&lt;BR /&gt;i + COUNT;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=have1; by eq hours ill ;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=have1 out=want(drop=_:);&lt;BR /&gt;by eq hours;&lt;BR /&gt;id ill;&lt;BR /&gt;var i;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want2;&lt;BR /&gt;set want;&lt;BR /&gt;unique=eq||hours;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have2 (drop=ill);&lt;BR /&gt;set have;&lt;BR /&gt;UNIQUE=eq||hours;&lt;BR /&gt;proc sort nodupkey;&lt;BR /&gt;by eq hours;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC SQL;&lt;BR /&gt;CREATE TABLE MERGED AS&lt;BR /&gt;SELECT * &lt;BR /&gt;FROM have2 LEFT JOIN want2&lt;BR /&gt;ON (have2.unique=want2.unique);&lt;BR /&gt;QUIT;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=merged (drop=unique) nodupkey;&lt;BR /&gt;by eq hours;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Apr 2012 12:10:55 GMT</pubDate>
    <dc:creator>Longduration</dc:creator>
    <dc:date>2012-04-03T12:10:55Z</dc:date>
    <item>
      <title>Counting cumulatively</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53437#M14765</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like some help using the "COUNT" function or similar. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My problem:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have data (Table 1) that I would like to convert into Table 2 by: Creating a new column for each "illness", cumulatively counting each illness by equipment no., the hours are "summarized"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;Table 1:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="281"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" width="80"&gt;Hours&lt;/TD&gt;&lt;TD class="xl65" width="121"&gt;Equipment No.&lt;/TD&gt;&lt;TD class="xl65" width="80"&gt;Illness&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;D&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;100&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;100&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;1000&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;1000&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;1000&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;100&lt;/TD&gt;&lt;TD class="xl65"&gt;20&lt;/TD&gt;&lt;TD class="xl65"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;1000&lt;/TD&gt;&lt;TD class="xl65"&gt;20&lt;/TD&gt;&lt;TD class="xl65"&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;1000&lt;/TD&gt;&lt;TD class="xl65"&gt;20&lt;/TD&gt;&lt;TD class="xl65"&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;Table 2:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="496"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="xl65" height="20" width="80"&gt;Hours&lt;/TD&gt;&lt;TD class="xl65" width="111"&gt;Equipment No.&lt;/TD&gt;&lt;TD class="xl65" width="59"&gt;A&lt;/TD&gt;&lt;TD class="xl65" width="59"&gt;B&lt;/TD&gt;&lt;TD class="xl65" width="62"&gt;C&lt;/TD&gt;&lt;TD class="xl65" width="62"&gt;D&lt;/TD&gt;&lt;TD class="xl65" width="63"&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;1&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;2&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;1&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;100&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;2&lt;/TD&gt;&lt;TD class="xl65"&gt;1&lt;/TD&gt;&lt;TD class="xl65"&gt;1&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;1000&lt;/TD&gt;&lt;TD class="xl65"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;3&lt;/TD&gt;&lt;TD class="xl65"&gt;2&lt;/TD&gt;&lt;TD class="xl65"&gt;2&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;20&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;10&lt;/TD&gt;&lt;TD class="xl65"&gt;20&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;100&lt;/TD&gt;&lt;TD class="xl65"&gt;20&lt;/TD&gt;&lt;TD class="xl65"&gt;1&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl65" height="20"&gt;1000&lt;/TD&gt;&lt;TD class="xl65"&gt;20&lt;/TD&gt;&lt;TD class="xl65"&gt;1&lt;/TD&gt;&lt;TD class="xl65"&gt;1&lt;/TD&gt;&lt;TD class="xl65"&gt;1&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;TD class="xl65"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any thoughts?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Apr 2012 15:09:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53437#M14765</guid>
      <dc:creator>Longduration</dc:creator>
      <dc:date>2012-04-02T15:09:42Z</dc:date>
    </item>
    <item>
      <title>Counting cumulatively</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53438#M14766</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not sure why you want to do this, and there is probably a more direct route, but here is one of many possibilities:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format;&lt;/P&gt;&lt;P&gt;&amp;nbsp; value $ill&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'A'='A'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'B'='B'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'C'='C'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'D'='D'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'E'='E'&lt;/P&gt;&lt;P&gt;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; value hrs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0=0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10=10&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100=100&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1000=1000&lt;/P&gt;&lt;P&gt;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input Hours Equipment_No Illness $;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format Hours hrs.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format Illness $Ill.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&lt;/P&gt;&lt;P&gt;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&lt;/P&gt;&lt;P&gt;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;C&lt;/P&gt;&lt;P&gt;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;D&lt;/P&gt;&lt;P&gt;100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;B&lt;/P&gt;&lt;P&gt;100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;E&lt;/P&gt;&lt;P&gt;1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&lt;/P&gt;&lt;P&gt;1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;B&lt;/P&gt;&lt;P&gt;1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;C&lt;/P&gt;&lt;P&gt;100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&lt;/P&gt;&lt;P&gt;1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;B&lt;/P&gt;&lt;P&gt;1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;C&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc summary completetypes data=have nway;&lt;/P&gt;&lt;P&gt;&amp;nbsp; class equipment_no;&lt;/P&gt;&lt;P&gt;&amp;nbsp; class hours / preloadfmt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; class illness / preloadfmt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; output out=temp(drop=_type_ rename=_freq_=count);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=temp&lt;/P&gt;&lt;P&gt;&amp;nbsp; out=want (drop=_:);&lt;/P&gt;&lt;P&gt;&amp;nbsp; var count;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by Equipment_no hours;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (drop=col:);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain a b c d e;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array columns col:;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array ncol a--e;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by Equipment_No;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if first.Equipment_No then do i=1 to 5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ncol(i)=columns(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else do i=1 to 5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ncol(i)+columns(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Apr 2012 15:49:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53438#M14766</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-04-02T15:49:08Z</dc:date>
    </item>
    <item>
      <title>Counting cumulatively</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53439#M14767</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is another mainly data step approach, I don't feel slick about this approach either.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have1;&lt;/P&gt;&lt;P&gt;input Hours $ equipmentno$&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Illness $;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&lt;/P&gt;&lt;P&gt;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&lt;/P&gt;&lt;P&gt;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;C&lt;/P&gt;&lt;P&gt;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;D&lt;/P&gt;&lt;P&gt;100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;B&lt;/P&gt;&lt;P&gt;100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;E&lt;/P&gt;&lt;P&gt;1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&lt;/P&gt;&lt;P&gt;1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;B&lt;/P&gt;&lt;P&gt;1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;C&lt;/P&gt;&lt;P&gt;100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&lt;/P&gt;&lt;P&gt;1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;B&lt;/P&gt;&lt;P&gt;1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;C&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;select distinct illness into :var separated by ' ' from have1;&lt;/P&gt;&lt;P&gt;select distinct hours into :hours separated by ',' from have1;&lt;/P&gt;&lt;P&gt;select distinct equipmentno into :eq separated by ',' from have1;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have2;&lt;/P&gt;&lt;P&gt;length equipmentno hours $8;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do equipmentno=&amp;amp;eq;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do hours=&amp;amp;hours;&lt;/P&gt;&lt;P&gt; output;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have2;&lt;/P&gt;&lt;P&gt;set have2;&lt;/P&gt;&lt;P&gt;equipmentno=left(equipmentno);&lt;/P&gt;&lt;P&gt;hours=left(hours);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have3;&lt;/P&gt;&lt;P&gt;merge have1 have2;&lt;/P&gt;&lt;P&gt;by equipmentno hours;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data want(drop=ill:);&lt;/P&gt;&lt;P&gt; retain &amp;amp;var 0;&lt;/P&gt;&lt;P&gt; do until (last.equipmentno);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have3;&lt;/P&gt;&lt;P&gt; by equipmentno hours notsorted;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array v &amp;amp;var;&lt;/P&gt;&lt;P&gt; do over v;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if illness=vname(v) then v+1;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; if last.hours then output;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do over v;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;proc print;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Apr 2012 16:41:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53439#M14767</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-04-02T16:41:28Z</dc:date>
    </item>
    <item>
      <title>Re: Counting cumulatively</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53440#M14768</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My proposal:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;data have;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;input hours eq ill$;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;datalines;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;0 10 A &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;10 10 A &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;10 10 C &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;10 10 D &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;100 10 B &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;100 10 E &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;1000 10 A &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;1000 10 B &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;1000 10 C &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;100 20 A &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;1000 20 B &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;1000 20 C &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;proc freq data=have noprint;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;tables eq*ill*hours / sparse out=have0(drop=PERCENT);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;data have1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;set have0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;by eq ill;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;if first.ill then i = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;i + COUNT;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;proc sort data=have1; by eq hours ill;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;proc transpose data=have1 out=want(drop=_:);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;by eq hours;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;id ill;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;var i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;proc print data=want; run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt; font-family: calibri, verdana, arial, sans-serif;"&gt;PG&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Apr 2012 17:49:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53440#M14768</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2012-04-02T17:49:44Z</dc:date>
    </item>
    <item>
      <title>Re: Counting cumulatively</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53441#M14769</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Very good, PG! a lot slicker than mine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Apr 2012 19:18:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53441#M14769</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-04-02T19:18:59Z</dc:date>
    </item>
    <item>
      <title>Re: Counting cumulatively</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53442#M14770</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Thank you, all 3 proposals work! &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Though I think i simplified the input data set too much to put here. Each equipment is checked at different hours so the intervals are different for each. A sample of an actual set of checks is below (Though I have about 250 different equipment No.s)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="0" cellpadding="0" cellspacing="0" width="272"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="xl63" height="20" width="80"&gt;Hours&lt;/TD&gt;&lt;TD class="xl63" width="112"&gt;Equipment no.&lt;/TD&gt;&lt;TD class="xl63" width="80"&gt;Illness&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;0&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;25&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;86&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;86&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;86&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;D&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;225&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;225&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;225&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;D&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;1264&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;1264&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;1264&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;D&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;1264&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;1264&lt;/TD&gt;&lt;TD class="xl63"&gt;10&lt;/TD&gt;&lt;TD class="xl63"&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;0&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;16&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;57&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;57&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;57&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;D&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;57&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;161&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;161&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;B&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;161&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;161&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;887&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;A&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;887&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;C&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="xl63" height="20"&gt;887&lt;/TD&gt;&lt;TD class="xl63"&gt;20&lt;/TD&gt;&lt;TD class="xl63"&gt;E&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;So I would like to produce a summary table with only the hours relevant to each equipment. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Apr 2012 09:02:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53442#M14770</guid>
      <dc:creator>Longduration</dc:creator>
      <dc:date>2012-04-03T09:02:46Z</dc:date>
    </item>
    <item>
      <title>Re: Counting cumulatively</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53443#M14771</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; So I've extended PG's proposal and I get what I'm looking for but it seems a roundabout way of doing it, any ideas of something "shorter" ? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;BR /&gt;input hours eq ill$;&lt;BR /&gt;datalines;&lt;BR /&gt;0 10 B &lt;BR /&gt;25 10 A &lt;BR /&gt;86 10 A &lt;BR /&gt;86 10 B &lt;BR /&gt;86 10 D &lt;BR /&gt;225 10 A &lt;BR /&gt;225 10 B&amp;nbsp; &lt;BR /&gt;225 10 D &lt;BR /&gt;1264 10 A &lt;BR /&gt;1264 10 B &lt;BR /&gt;1264 10 D &lt;BR /&gt;1264 10 E &lt;BR /&gt;1264 10 C &lt;BR /&gt;0 20 A &lt;BR /&gt;16 20 A &lt;BR /&gt;57 20 A &lt;BR /&gt;57 20 B &lt;BR /&gt;57 20 D &lt;BR /&gt;57 20 C &lt;BR /&gt;161 20 A &lt;BR /&gt;161 20 B &lt;BR /&gt;161 20 C &lt;BR /&gt;161 20 E &lt;BR /&gt;887 20 A &lt;BR /&gt;887 20 C &lt;BR /&gt;887 20 E &lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;proc freq data=have noprint;&lt;BR /&gt;tables eq*ill*hours / sparse out=have0(drop=PERCENT);&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have1;&lt;BR /&gt;set have0;&lt;BR /&gt;by eq ill;&lt;BR /&gt;if first.ill then i = 0;&lt;BR /&gt;i + COUNT;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=have1; by eq hours ill ;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=have1 out=want(drop=_:);&lt;BR /&gt;by eq hours;&lt;BR /&gt;id ill;&lt;BR /&gt;var i;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want2;&lt;BR /&gt;set want;&lt;BR /&gt;unique=eq||hours;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have2 (drop=ill);&lt;BR /&gt;set have;&lt;BR /&gt;UNIQUE=eq||hours;&lt;BR /&gt;proc sort nodupkey;&lt;BR /&gt;by eq hours;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROC SQL;&lt;BR /&gt;CREATE TABLE MERGED AS&lt;BR /&gt;SELECT * &lt;BR /&gt;FROM have2 LEFT JOIN want2&lt;BR /&gt;ON (have2.unique=want2.unique);&lt;BR /&gt;QUIT;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=merged (drop=unique) nodupkey;&lt;BR /&gt;by eq hours;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Apr 2012 12:10:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53443#M14771</guid>
      <dc:creator>Longduration</dc:creator>
      <dc:date>2012-04-03T12:10:55Z</dc:date>
    </item>
    <item>
      <title>Re: Counting cumulatively</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53444#M14772</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;data have;
input hours eq ill $;
retain n 1;
datalines;
0 10 B
25 10 A
86 10 A
86 10 B
86 10 D
225 10 A
225 10 B 
225 10 D
1264 10 A
1264 10 B
1264 10 D
1264 10 E
1264 10 C
0 20 A
16 20 A
57 20 A
57 20 B
57 20 D
57 20 C
161 20 A
161 20 B
161 20 C
161 20 E
887 20 A
887 20 C
887 20 E
;
run;

proc sort data=have ;by eq hours ;run;
proc transpose data=have out=x(drop=_:);
by eq hours ;
id ill;
var n;
run;
proc sql noprint;
 select distinct cats('_', ill,'+',ill) into : count separated by ';' from have ;
 select distinct cats('_', ill,'=0') into : zero separated by ';' from have ;
quit;
proc stdize data=x reponly missing=0 out=xx;run; 
data want(keep=eq hours _:);
 set xx;
 by eq;
 if first.eq then do; &amp;amp;zero; end;
 &amp;amp;count ;
run;



&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Apr 2012 04:36:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53444#M14772</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-04-06T04:36:27Z</dc:date>
    </item>
    <item>
      <title>Re: Counting cumulatively</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53445#M14773</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Ksharp. Just what I'm looking for. I'm constantly surprised at the large number of ways of doing the same thing.&lt;/P&gt;&lt;P&gt;But I'm struggling to follow the part of creating count and zero :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql noprint;&lt;/P&gt;&lt;P&gt; select distinct cats('_', ill,'+',ill) into : count separated by ';' from have ;&lt;/P&gt;&lt;P&gt; select distinct cats('_', ill,'=0') into : zero separated by ';' from have ;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;What is the need for the '_' ? I can't seem to visualize this. It also leaves a "_" plus the variable name in the final table. I've tried playing around with this to understand it and remove it, but no success...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Apr 2012 13:02:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53445#M14773</guid>
      <dc:creator>Longduration</dc:creator>
      <dc:date>2012-04-10T13:02:16Z</dc:date>
    </item>
    <item>
      <title>Re: Counting cumulatively</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53446#M14774</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;two macro variables &amp;amp;count and &amp;amp;zero were created by&lt;/P&gt;&lt;P&gt;"proc sql noprint;&lt;/P&gt;&lt;P&gt;select distinct cats('_', ill,'+',ill) into : count separated by ';' from have ;&lt;/P&gt;&lt;P&gt;select distinct cats('_', ill,'=0') into : zero separated by ';' from have ;&lt;/P&gt;&lt;P&gt;quit;"&lt;/P&gt;&lt;P&gt;&amp;amp;count has the value :&amp;nbsp; _a+a ; _b+b; _c+c; _d+d; _e+e;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;zero has the value:&amp;nbsp; _a=0;&amp;nbsp; _b=0;&amp;nbsp; _c=0;&amp;nbsp; _d=0;&amp;nbsp; _e=0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;so Ksharp's code is the same as&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: navy; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;sort&lt;/STRONG&gt; &lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;=have ;&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt; eq hours ;&lt;/SPAN&gt;&lt;STRONG style="color: navy; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: navy; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;transpose&lt;/STRONG&gt; &lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;=have &lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;out&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;=x(drop=_:);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt; eq hours ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;id&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt; ill;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;var&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt; n;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: navy; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;stdize&lt;/STRONG&gt; &lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;=x &lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;reponly&lt;/SPAN&gt; &lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;missing&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;=&lt;/SPAN&gt;&lt;STRONG style="color: teal; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;0&lt;/STRONG&gt; &lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;out&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;=xx;&lt;/SPAN&gt;&lt;STRONG style="color: navy; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;data&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt; want(keep=eq hours _:);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; &lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;set&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt; xx;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; &lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt; eq;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; &lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt; first.eq &lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;then&lt;/SPAN&gt; &lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;do&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _a=&lt;/SPAN&gt;&lt;STRONG style="color: teal; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;; _b=&lt;/SPAN&gt;&lt;STRONG style="color: teal; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;; _c=&lt;/SPAN&gt;&lt;STRONG style="color: teal; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;; _d=&lt;/SPAN&gt;&lt;STRONG style="color: teal; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;; _e=&lt;/SPAN&gt;&lt;STRONG style="color: teal; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;0&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-family: 'Courier New'; background: white; color: blue; font-size: 10pt;"&gt;end&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _a+a ;_b+b;_c+c;_d+d;_e+e;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="font-family: 'Courier New'; background: white; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Apr 2012 19:32:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53446#M14774</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-04-10T19:32:32Z</dc:date>
    </item>
    <item>
      <title>Re: Counting cumulatively</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53447#M14775</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That is the charm of SAS.&lt;/P&gt;&lt;P&gt;Linlin has already expain it too.&lt;/P&gt;&lt;P&gt;Also You can use&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%put &amp;amp;zero &amp;amp;count ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;to check what the macro variable's value are&amp;nbsp; .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Apr 2012 03:02:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Counting-cumulatively/m-p/53447#M14775</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-04-11T03:02:24Z</dc:date>
    </item>
  </channel>
</rss>

