<?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: Vertical Average by condition in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697643#M213232</link>
    <description>&lt;P&gt;If you want to average percentages you better have both the numerator and denominator used to calculate the percentage as unless the denominator is exactly the same for every percentage then the "average" is suspect at best a possibly terribly misleading at worst.&lt;/P&gt;
&lt;P&gt;Suppose I drive a car 1 mile and get 100 miles per gallon because I was able to do a lot of coasting. Then the next leg measure was 100 miles and I get 30 mpg because of more typical driving conditions. Is the "averager" mgp (100+30)/2 = 65 mpg?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Even worse, I strongly suspect the values you show are rounded, which even further reduces the reliability of the "average".&lt;/P&gt;</description>
    <pubDate>Mon, 09 Nov 2020 15:19:24 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2020-11-09T15:19:24Z</dc:date>
    <item>
      <title>Vertical Average by condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697628#M213228</link>
      <description>&lt;P&gt;Average of first 12 non-missing values vertically.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;X&lt;/TD&gt;&lt;TD&gt;Y0&lt;/TD&gt;&lt;TD&gt;Y1&lt;/TD&gt;&lt;TD&gt;Y2&lt;/TD&gt;&lt;TD&gt;Y3&lt;/TD&gt;&lt;TD&gt;Y4&lt;/TD&gt;&lt;TD&gt;Y5&lt;/TD&gt;&lt;TD&gt;Y6&lt;/TD&gt;&lt;TD&gt;Y7&lt;/TD&gt;&lt;TD&gt;Y8&lt;/TD&gt;&lt;TD&gt;Y9&lt;/TD&gt;&lt;TD&gt;Y10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201201&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201202&lt;/TD&gt;&lt;TD&gt;3%&lt;/TD&gt;&lt;TD&gt;(1%)&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201203&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201204&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201205&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;3%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201206&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;3%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201207&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;3%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201208&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;3%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201209&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;3%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;3%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201210&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;4%&lt;/TD&gt;&lt;TD&gt;3%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;4%&lt;/TD&gt;&lt;TD&gt;4%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201211&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;3%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;6%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201212&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;6%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;3%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201301&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201302&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;5%&lt;/TD&gt;&lt;TD&gt;(1%)&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201303&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;(0%)&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;4%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;201304&lt;/TD&gt;&lt;TD&gt;0%&lt;/TD&gt;&lt;TD&gt;4%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;3%&lt;/TD&gt;&lt;TD&gt;2%&lt;/TD&gt;&lt;TD&gt;4%&lt;/TD&gt;&lt;TD&gt;(1%)&lt;/TD&gt;&lt;TD&gt;1%&lt;/TD&gt;&lt;TD&gt;4%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AVG&lt;/TD&gt;&lt;TD&gt;0.012921&lt;/TD&gt;&lt;TD&gt;0.004853&lt;/TD&gt;&lt;TD&gt;0.005452&lt;/TD&gt;&lt;TD&gt;0.008107&lt;/TD&gt;&lt;TD&gt;0.006915&lt;/TD&gt;&lt;TD&gt;0.009627&lt;/TD&gt;&lt;TD&gt;0.008207&lt;/TD&gt;&lt;TD&gt;0.007293&lt;/TD&gt;&lt;TD&gt;0.018898&lt;/TD&gt;&lt;TD&gt;0.011633&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 09 Nov 2020 14:43:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697628#M213228</guid>
      <dc:creator>Cho8</dc:creator>
      <dc:date>2020-11-09T14:43:27Z</dc:date>
    </item>
    <item>
      <title>Re: Vertical Average by condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697634#M213230</link>
      <description>&lt;P&gt;This would be much easier if your data is in a long data set instead of a wide data set (wide data sets are rarely required and much harder to program).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As an example (to save myself some typing) here I get the average for the first THREE non-missing records. Note, this code will work for how ever many Y variables you may have, and with minor modifications will work for any number of non-missing records.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    input x y1 y2;
	cards;
	201201 0.1 .
	201202 0.3 .
	201203 -0.2 0.2
	201204 0 0.25
	201205 0.1 0.4
	201206 -0.1 -0.1
;

/* CONVERT TO A LONG DATA SET */
proc transpose data=have out=have_t;
	by x;
	var y:;
run;
proc sort data=have_t;
	by _name_ x;
run;
data want;
	set have_t;
	by _name_;
	if first._name_ then do;
		sum=0;
		counter=0;
	end;
	if not missing(col1) then do;
		counter+1;
		if counter&amp;lt;=3 then sum+col1;
	end;
	if last._name_ then do;
		mean=sum/3;
		output;
	end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 09 Nov 2020 15:08:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697634#M213230</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2020-11-09T15:08:34Z</dc:date>
    </item>
    <item>
      <title>Re: Vertical Average by condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697638#M213231</link>
      <description>&lt;P&gt;Maxims 19 &amp;amp; 33. As soon as you transpose to a long layout, the code almost writes itself.&lt;/P&gt;</description>
      <pubDate>Mon, 09 Nov 2020 15:16:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697638#M213231</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-11-09T15:16:41Z</dc:date>
    </item>
    <item>
      <title>Re: Vertical Average by condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697643#M213232</link>
      <description>&lt;P&gt;If you want to average percentages you better have both the numerator and denominator used to calculate the percentage as unless the denominator is exactly the same for every percentage then the "average" is suspect at best a possibly terribly misleading at worst.&lt;/P&gt;
&lt;P&gt;Suppose I drive a car 1 mile and get 100 miles per gallon because I was able to do a lot of coasting. Then the next leg measure was 100 miles and I get 30 mpg because of more typical driving conditions. Is the "averager" mgp (100+30)/2 = 65 mpg?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Even worse, I strongly suspect the values you show are rounded, which even further reduces the reliability of the "average".&lt;/P&gt;</description>
      <pubDate>Mon, 09 Nov 2020 15:19:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697643#M213232</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2020-11-09T15:19:24Z</dc:date>
    </item>
    <item>
      <title>Re: Vertical Average by condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697804#M213325</link>
      <description>&lt;P&gt;For each variable, you want to calculate the average of the first 12 non-missing values.&amp;nbsp; This program (untested since you haven't generated your sample data in the form of a working data step) is one approach using the data in its current wide format:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want (drop=i);
  set have end=end_of_have;
  array tmpsum {10} _temporary_;
  array tmpn   {10} _temporary_;

  array y {*} y: ;

  do i=1 to 10;
    if y{i}=. or tmpn{i}=12 then continue;
    tmpn{i}+1;
	tmpsum{i}+y{i};
  end;
  output;
  if end_of_have;
  do i=1 to 10;
    y{i}=tmpsum{i}/12;
  end;
  output;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;The tmpsum and tmpn array keep track of sums and counts of the 10 Y variables.&amp;nbsp; For each iteration of the loop the CONTINUE statement means to go to the next iteration without performing subsequent within-loop statements.&amp;nbsp; The provides a way to only add the first 12 values of each Y in the corresponding tmpsum/tmpn arrays.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There are two explicit OUTPUT statements - one for each obs in the data set, and one which is performed only at the end of data set HAVE, which writes on the desired average values.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Nov 2020 06:05:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697804#M213325</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2020-11-10T06:05:26Z</dc:date>
    </item>
    <item>
      <title>Re: Vertical Average by condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697807#M213326</link>
      <description>&lt;P&gt;its giving 0 for all sum ,counter and mean.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;missing value for Col1..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;when i use mean=sum/12&lt;/P&gt;</description>
      <pubDate>Tue, 10 Nov 2020 06:18:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697807#M213326</guid>
      <dc:creator>Cho8</dc:creator>
      <dc:date>2020-11-10T06:18:07Z</dc:date>
    </item>
    <item>
      <title>Re: Vertical Average by condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697818#M213330</link>
      <description>&lt;P&gt;where do u print the vertical average for each variable&lt;/P&gt;</description>
      <pubDate>Tue, 10 Nov 2020 07:59:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697818#M213330</guid>
      <dc:creator>Cho8</dc:creator>
      <dc:date>2020-11-10T07:59:28Z</dc:date>
    </item>
    <item>
      <title>Re: Vertical Average by condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697854#M213348</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/354671"&gt;@Cho8&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;its giving 0 for all sum ,counter and mean.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;missing value for Col1..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;when i use mean=sum/12&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It does not give 0 when I run it. You must not be running the same code.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Nov 2020 11:30:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697854#M213348</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2020-11-10T11:30:42Z</dc:date>
    </item>
    <item>
      <title>Re: Vertical Average by condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697880#M213369</link>
      <description>&lt;P&gt;Is it what you are looking for ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data have;
infile datalines expandtabs truncover;
input y  (d1-d9) (: percent8.);
datalines;
201201	1%	0%	1%	0%	0%	(0%)	.	.	.	.	.
201202	3%	(1%)	2%	1%	0%	0%	1%	.	.	.	.
201203	1%	0%	1%	0%	(0%)	0%	0%	0%	.	.	.
201204	2%	1%	0%	1%	2%	0%	(0%)	(0%)	1%	.	.
201205	1%	0%	0%	2%	(0%)	0%	1%	0%	3%	1%	.
201206	0%	1%	1%	2%	0%	(0%)	0%	(0%)	1%	3%	2%
201207	1%	2%	(0%)	(0%)	0%	0%	3%	0%	2%	(0%)	0%
201208	1%	(0%)	0%	1%	1%	0%	2%	2%	(0%)	1%	3%
201209	1%	1%	(0%)	3%	0%	2%	1%	(0%)	2%	3%	2%
201210	2%	(0%)	(0%)	1%	4%	3%	2%	1%	4%	4%	0%
201211	1%	2%	1%	(0%)	0%	(0%)	0%	3%	0%	0%	6%
201212	2%	0%	1%	(0%)	1%	6%	0%	2%	3%	(0%)	(0%)
201301	2%	2%	0%	(0%)	0%	0%	0%	(0%)	2%	(0%)	1%
201302	0%	0%	1%	0%	0%	1%	(0%)	1%	5%	(1%)	1%
201303	1%	1%	0%	1%	0%	1%	0%	1%	(0%)	1%	4%
201304	0%	4%	1%	1%	1%	3%	2%	4%
;

proc transpose data=have out=temp name=y prefix=_;
var d1-d9;
id y;
run;

data temp;
 set temp;
 array x{*} _:;
 count=0;
 do i=1 to dim(x);
  if not missing(x{i})  then do;
  count+1;
  sum=sum(sum,x{i});
  if count=12 then leave;
 end;
 end;
 _avg=sum/count;
 drop i  count sum;
run;

proc transpose data=temp out=want;
var _:;
id y;
run;&lt;/PRE&gt;</description>
      <pubDate>Tue, 10 Nov 2020 12:46:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/697880#M213369</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2020-11-10T12:46:13Z</dc:date>
    </item>
    <item>
      <title>Re: Vertical Average by condition</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/698049#M213435</link>
      <description>&lt;P&gt;So now you want to PRINT the results?&amp;nbsp; My program (did you actually run it and examine the resulting dataset?) appends an observation to the end of the dataset, with vars Y1-Y10 containing the desired average.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So run a proc print on that dataset.&lt;/P&gt;</description>
      <pubDate>Wed, 11 Nov 2020 01:19:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Vertical-Average-by-condition/m-p/698049#M213435</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2020-11-11T01:19:14Z</dc:date>
    </item>
  </channel>
</rss>

