<?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: How to calculate the sum of continous nonmissing value? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/371127#M88652</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13759"&gt;@MikeZdeb&lt;/a&gt;'s code would have produced the same result as my code but, contrary to your specs, he included month as a group variable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The following would produce the same result as my code:&lt;/P&gt;
&lt;PRE&gt;data have;
  set have;
  new + missing(var) + missing(lag(var));
run;

proc sql;
  create table want (drop=new) as select *, sum(var) as sum from have 
    group by stn, year, new 
      order by stn, year, month, day;
quit;
&lt;/PRE&gt;
&lt;P&gt;He used new to create a separate group variable. missing(var) would increase new by 1 each time there was a missing value for var.&lt;/P&gt;
&lt;P&gt;missing(lag(var)) checked the value of the previous var, thus initially had a value of 1. That was also essential to increase the group when the previous value of var was missing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The correct summing was accomplish with the group statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 28 Jun 2017 03:01:30 GMT</pubDate>
    <dc:creator>art297</dc:creator>
    <dc:date>2017-06-28T03:01:30Z</dc:date>
    <item>
      <title>How to calculate the sum of continous nonmissing value?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/370949#M88593</link>
      <description>&lt;P&gt;Hello all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I&amp;nbsp;tried&amp;nbsp;to find the sum of continous non-missing value in a dataset by group (stn and year), but still have some trouble to do so. &lt;SPAN&gt; I hope someone in the SAS community groups can help. Thanks a lot!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I have a dataset looks like this:&lt;/SPAN&gt;&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 240pt;" width="320" cellspacing="0" cellpadding="0" border="0"&gt;&lt;COLGROUP&gt;&lt;COL style="width: 48pt;" width="64" span="5" /&gt; &lt;/COLGROUP&gt;
&lt;TBODY&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl65" style="height: 14.4pt; width: 48pt;" width="64" height="19"&gt;stn&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;year&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;month&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;day&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;var&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl65" style="height: 14.4pt; width: 48pt;" width="64" height="19" align="right"&gt;1&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;2000&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;12&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;28&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;0.2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;29&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;0.5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;30&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;31&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;0.2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;3&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl65" style="height: 14.4pt; width: 48pt;" width="64" height="19" align="right"&gt;2&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;2000&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;12&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;28&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;0.6&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;29&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;30&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;31&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1.5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;3&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;
&lt;P&gt;3&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And I want to get&amp;nbsp; the following:&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 240pt;" width="384" cellspacing="0" cellpadding="0" border="0"&gt;&lt;COLGROUP&gt;&lt;COL style="width: 48pt;" width="64" span="6" /&gt; &lt;/COLGROUP&gt;
&lt;TBODY&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl65" style="height: 14.4pt; width: 48pt;" width="64" height="19"&gt;stn&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;year&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;month&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;day&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;var&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;sum&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl65" style="height: 14.4pt; width: 48pt;" width="64" height="19" align="right"&gt;1&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;2000&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;12&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;28&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;0.2&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;0.7&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;29&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;0.5&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;0.7&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;30&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;.&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;31&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;0.2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1.2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1.2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;3&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;.&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl65" style="height: 14.4pt; width: 48pt;" width="64" height="19" align="right"&gt;2&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;2000&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;12&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;28&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;0.6&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64" align="right"&gt;0.6&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;29&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;.&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;30&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;.&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2000&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;12&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;31&lt;/TD&gt;
&lt;TD class="xl65" style="width: 48pt;" width="64"&gt;.&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;0&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;4.5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1.5&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;4.5&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 14.4pt;"&gt;
&lt;TD class="xl66" style="height: 14.4pt;" width="64" height="19"&gt;2&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;2001&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;1&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;3&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;3&lt;/TD&gt;
&lt;TD class="xl66" style="width: 48pt;" width="64"&gt;4.5&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;If any one can assist in this problem I would greatly appreciate it!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you and hope for your reply!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best,&lt;/P&gt;
&lt;P&gt;Hua&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jun 2017 14:19:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/370949#M88593</guid>
      <dc:creator>hua</dc:creator>
      <dc:date>2017-06-27T14:19:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate the sum of continous nonmissing value?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/370960#M88601</link>
      <description>&lt;P&gt;You can expend your group (stn year) by adding a new variable to it:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data temp;
  set have;
    by stn year;
         retain new_var;
         if first.year then new_var=0;
         if var=. then new_var+1;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Now use temp dataset to sum by stn year new_var and adjust the sum to each of the new group observation.&lt;/P&gt;
&lt;P&gt;If you preffer you can drop the new_var from the final&amp;nbsp;dataset.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jun 2017 14:48:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/370960#M88601</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-06-27T14:48:58Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate the sum of continous nonmissing value?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/370965#M88605</link>
      <description>&lt;P&gt;Here is one way:&lt;/P&gt;
&lt;PRE&gt;data need;
  set have;
  _check=missing(var);
run;

data want (drop=_:);
  do until(last._check);
    set need;
    by stn year _check notsorted;
    if first._check then call missing(sum);
    sum+var;
  end;
  do until(last._check);
    set need;
    by stn year _check notsorted;
    output;
  end;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jun 2017 15:07:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/370965#M88605</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-06-27T15:07:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate the sum of continous nonmissing value?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/370979#M88607</link>
      <description>&lt;P&gt;Hi, another idea ...&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;data have;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;set have;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;new + missing(var) + missing(lag(var));&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;run;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;proc sql;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;create table want (drop=new) as&amp;nbsp;select *, sum(var) as sum from have&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;group by stn, year, month, new &lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;order by stn, year, month, day;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;quit;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 Jun 2017 15:48:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/370979#M88607</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2017-06-27T15:48:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate the sum of continous nonmissing value?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/371118#M88648</link>
      <description>Thanks Shmuel, I tried your code, but it doesn't work. After I run the code, the new_var came out as from 1 to n where the var is missing value and if the var is nonmissing value new_var keep constant.</description>
      <pubDate>Wed, 28 Jun 2017 02:08:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/371118#M88648</guid>
      <dc:creator>hua</dc:creator>
      <dc:date>2017-06-28T02:08:10Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate the sum of continous nonmissing value?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/371119#M88649</link>
      <description>Thank you very much! It worked well, and I got what I want!</description>
      <pubDate>Wed, 28 Jun 2017 02:13:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/371119#M88649</guid>
      <dc:creator>hua</dc:creator>
      <dc:date>2017-06-28T02:13:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate the sum of continous nonmissing value?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/371123#M88651</link>
      <description>Thanks for your reply! I haven't catch up your idea, what do you mean by new + missing(var) + missing(lag(var)); why do we need to do this step? And I tried this code. It seems like most of the results are correct, but several got the wrong number. I don't understand the code, so I could not debug it.</description>
      <pubDate>Wed, 28 Jun 2017 02:26:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/371123#M88651</guid>
      <dc:creator>hua</dc:creator>
      <dc:date>2017-06-28T02:26:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate the sum of continous nonmissing value?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/371127#M88652</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13759"&gt;@MikeZdeb&lt;/a&gt;'s code would have produced the same result as my code but, contrary to your specs, he included month as a group variable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The following would produce the same result as my code:&lt;/P&gt;
&lt;PRE&gt;data have;
  set have;
  new + missing(var) + missing(lag(var));
run;

proc sql;
  create table want (drop=new) as select *, sum(var) as sum from have 
    group by stn, year, new 
      order by stn, year, month, day;
quit;
&lt;/PRE&gt;
&lt;P&gt;He used new to create a separate group variable. missing(var) would increase new by 1 each time there was a missing value for var.&lt;/P&gt;
&lt;P&gt;missing(lag(var)) checked the value of the previous var, thus initially had a value of 1. That was also essential to increase the group when the previous value of var was missing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The correct summing was accomplish with the group statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Jun 2017 03:01:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/371127#M88652</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-06-28T03:01:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate the sum of continous nonmissing value?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/371128#M88653</link>
      <description>Yes! That make sence! I tried again, it worked. Thank you both! I'm really appreciate it!</description>
      <pubDate>Wed, 28 Jun 2017 03:07:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/371128#M88653</guid>
      <dc:creator>hua</dc:creator>
      <dc:date>2017-06-28T03:07:47Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate the sum of continous nonmissing value?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/372283#M88996</link>
      <description>&lt;P&gt;Hi ... MONTH was NOT used as a GROUP variable, just as an ORDER variable to control the look of the output since SQL goes its own merry way when doing the various calculations ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;proc sql;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt; create table want (drop=new) as select *, sum(var) as sum from have &lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt; group by stn, year, new &lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt; order by stn, year, month, day;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;quit;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 30 Jun 2017 19:24:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/372283#M88996</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2017-06-30T19:24:36Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate the sum of continous nonmissing value?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/372286#M88998</link>
      <description>&lt;P&gt;The statement ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;new + missing(var) + missing(lag(var));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;creates a new variable named NEW (how prosaic) that is incremented by 1 each time ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;#1 a missing value of VAR is encountered in the current observation being processed in the data step&lt;/P&gt;
&lt;P&gt;#2 a missing value of VAR in the previous observation that was processed&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The expression MISSING(VAR) is TRUE and evaluates as 1 if the value is missing and evaluates as 1 (otherwise as zero). The same is true for the MISSING(LAG(VAR)) portion (add a 1 or a zero). Stements like that are a bit cryptic if you have not been introduced to using logical expressions (TRUE/FALSE that evaluates as 1/0) in equations ... just saves a lot of typing longer ways to accomplish the same task but I agree it might be hard to follow.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Not sure why it did not work for everything. Send me an example (msz03@albany.edu) and I can help the DEBUG process.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;new +&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 30 Jun 2017 19:34:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-the-sum-of-continous-nonmissing-value/m-p/372286#M88998</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2017-06-30T19:34:48Z</dc:date>
    </item>
  </channel>
</rss>

