<?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: summing across rows conditional on columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/408498#M99741</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want(keep=item_code sum_:);
   set have;
   by item_code;

   length sum_typeA sum_typeB sum_all 8;
   retain sum_:;

   if first.item_code then do;
      sum_typeA = 0;
      sum_typeB = 0;
   end;

   if type = 'A' then sum_typeA = sum_typeA + sales;
   else sum_typeB = sum_typeB + sales;

   if last.item_code then do;
      sum_all = sum_typeA + sum_TypeB;
      output;
   end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 30 Oct 2017 07:03:14 GMT</pubDate>
    <dc:creator>andreas_lds</dc:creator>
    <dc:date>2017-10-30T07:03:14Z</dc:date>
    <item>
      <title>summing across rows conditional on columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/408467#M99729</link>
      <description>&lt;P&gt;Hi, I have a small practice data set where there are three variables such as&amp;nbsp;item_code (character variable) with repeated instances of sales (numeric) as rows of the item_code and for&amp;nbsp;item_code there can be&amp;nbsp; two different type, A and B (also character variable). I'm trying to sum by unique item_code the sum of type A and type B and then the sum of both together (see data want below).&lt;/P&gt;&lt;P&gt;I'd greatly appreciate if someone could assist me.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; have;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;input&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; item_code $ type $ sales;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;datalines&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;V1 A 3&lt;/P&gt;&lt;P&gt;V1 A 6&lt;/P&gt;&lt;P&gt;V2 A 2&lt;/P&gt;&lt;P&gt;V2 B 1&lt;/P&gt;&lt;P&gt;V2 A 5&lt;/P&gt;&lt;P&gt;V3 A 5&lt;/P&gt;&lt;P&gt;V3 B 1&lt;/P&gt;&lt;P&gt;V3 B 7&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;/* data want;&lt;/P&gt;&lt;P&gt;Item_code&amp;nbsp; Sum_typeA&amp;nbsp;&amp;nbsp; Sum_typeB&amp;nbsp;&amp;nbsp; Sum_all&lt;/P&gt;&lt;P&gt;V1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;9&lt;/P&gt;&lt;P&gt;V2&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&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;&amp;nbsp;&amp;nbsp; &amp;nbsp;8&lt;/P&gt;&lt;P&gt;V3&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&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;&amp;nbsp;&amp;nbsp; 13&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Oct 2017 04:53:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/408467#M99729</guid>
      <dc:creator>Phil_from_PGA</dc:creator>
      <dc:date>2017-10-30T04:53:47Z</dc:date>
    </item>
    <item>
      <title>Re: summing across rows conditional on columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/408479#M99734</link>
      <description>Proc summary can do this, if you really need that format in a dataset, you have to transpose the procedures output-dataset. You can, of course, using by-group-processing with retain and do the calculation manually.</description>
      <pubDate>Mon, 30 Oct 2017 05:22:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/408479#M99734</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2017-10-30T05:22:16Z</dc:date>
    </item>
    <item>
      <title>Re: summing across rows conditional on columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/408484#M99736</link>
      <description>&lt;P&gt;How?&lt;/P&gt;</description>
      <pubDate>Mon, 30 Oct 2017 05:56:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/408484#M99736</guid>
      <dc:creator>Phil_from_PGA</dc:creator>
      <dc:date>2017-10-30T05:56:04Z</dc:date>
    </item>
    <item>
      <title>Re: summing across rows conditional on columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/408498#M99741</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want(keep=item_code sum_:);
   set have;
   by item_code;

   length sum_typeA sum_typeB sum_all 8;
   retain sum_:;

   if first.item_code then do;
      sum_typeA = 0;
      sum_typeB = 0;
   end;

   if type = 'A' then sum_typeA = sum_typeA + sales;
   else sum_typeB = sum_typeB + sales;

   if last.item_code then do;
      sum_all = sum_typeA + sum_TypeB;
      output;
   end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 30 Oct 2017 07:03:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/408498#M99741</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2017-10-30T07:03:14Z</dc:date>
    </item>
    <item>
      <title>Re: summing across rows conditional on columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/408917#M99869</link>
      <description>&lt;P&gt;Thank you for your help, much appreciated.&lt;/P&gt;</description>
      <pubDate>Mon, 30 Oct 2017 21:52:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/408917#M99869</guid>
      <dc:creator>Phil_from_PGA</dc:creator>
      <dc:date>2017-10-30T21:52:15Z</dc:date>
    </item>
    <item>
      <title>Re: summing across rows conditional on columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/409504#M100050</link>
      <description>&lt;P&gt;Just one another way to do this. Perhaps not the most optimum, but if you are more comfortable with Proc SQL and transpose rather than do group processing.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
create table want_ as select item_code, type, sum(sales) as sum_type from have group by item_code, type;
quit;

proc transpose data = want_ out = want_1 (drop =_name_);
by item_code;
var sum_type;
id type;
run;

proc sql;
create table want_2 as select item_code, sum(sales) as sum_all from have group by item_code;
quit;

Proc sql;
Create table want_final as select a.item_code, a.A as sum_typeA, a.B as sum_typeB, b.sum_all from want_1 a join want_2 b on a.item_code = b.item_code;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 01 Nov 2017 15:22:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/summing-across-rows-conditional-on-columns/m-p/409504#M100050</guid>
      <dc:creator>devsas</dc:creator>
      <dc:date>2017-11-01T15:22:58Z</dc:date>
    </item>
  </channel>
</rss>

