<?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: sum of values column wise in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600332#M173503</link>
    <description>&lt;P&gt;Don't clutter up your dataset with additional observations that will only cause confusion later on.&lt;/P&gt;
&lt;P&gt;The SAS reporting procedures (especially PROC REPORT) allow the dynamic creation of summary lines in the printed output.&lt;/P&gt;
&lt;P&gt;That said, try a data step:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input var $ var1 $ grp1 grp2 grp3;
datalines;
best A 3 4 6
best B 4 1 7
best C 1 3 1
Worst G 5 7 1
Worst E 5 2 6
;

data want;
set have;
by var notsorted; 
array invars {3} grp1-grp3;
array temp {3} _temporary_;
output;
if first.var
then do i = 1 to 3;
  temp{i} = invars{i};
end;
else do i = 1 to 3;
  temp{i} + invars{i};
end;
if last.var
then do;
  do i = 1 to 3;
    invars{i} = temp{i};
  end;
  var1 = 'Tot';
  var = '';
  output;
end;
drop i;
run;

proc print data=want;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;PRE&gt;Beob.     var     var1    grp1    grp2    grp3

  1      best     A         3       4       6 
  2      best     B         4       1       7 
  3      best     C         1       3       1 
  4               Tot       8       8      14 
  5      Worst    G         5       7       1 
  6      Worst    E         5       2       6 
  7               Tot      10       9       7 
&lt;/PRE&gt;</description>
    <pubDate>Wed, 30 Oct 2019 11:29:44 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2019-10-30T11:29:44Z</dc:date>
    <item>
      <title>sum of values column wise</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600324#M173495</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i have the following data set ,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I need sum of group1 group2 and group3 in 4 th observation with Value as 'Tot' for Var1 Variable .&lt;/P&gt;&lt;P&gt;&amp;nbsp;obs &amp;nbsp;&amp;nbsp;&amp;nbsp; Var&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var1&amp;nbsp;&amp;nbsp; grp1&amp;nbsp;&amp;nbsp; grp2&amp;nbsp;&amp;nbsp; grp3&lt;/P&gt;&lt;P&gt;1) &amp;nbsp; best&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;/P&gt;&lt;P&gt;2)&amp;nbsp; best&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&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; 7&lt;/P&gt;&lt;P&gt;3)&amp;nbsp; best&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C&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; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;4) Worst&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G &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; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;5) Worst&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E&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; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Expected :output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Var1&amp;nbsp;&amp;nbsp; grp1&amp;nbsp;&amp;nbsp; grp2&amp;nbsp;&amp;nbsp; grp3&lt;/P&gt;&lt;P&gt;1) &amp;nbsp; best&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;/P&gt;&lt;P&gt;2)&amp;nbsp; best&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&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; 7&lt;/P&gt;&lt;P&gt;3)&amp;nbsp; best&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C&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; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Tot &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; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&lt;/P&gt;&lt;P&gt;5) Worst&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G &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; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;6) Worst&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E&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; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;/P&gt;&lt;P&gt;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; Tot &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&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; 7 (sum of&amp;nbsp; "Worst")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Wed, 30 Oct 2019 10:54:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600324#M173495</guid>
      <dc:creator>Vijay77</dc:creator>
      <dc:date>2019-10-30T10:54:40Z</dc:date>
    </item>
    <item>
      <title>Re: sum of values column wise</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600327#M173498</link>
      <description>&lt;P&gt;Please try&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Var$ Var1$ grp1 grp2 grp3;
cards;
best  A 3 4 6
best  B 4 1 7
best  C 1 3 1
Worst G 5 7 1
Worst E 5 2 6
;

proc sql;
create table want as select a.* from have as a
union corr
select var, 'Tot' as var1, sum(grp1) as grp1, sum(grp2) as grp2, sum(grp3) as grp3 from have where var='best' 
union corr
select var, 'Tot' as var1,  sum(grp1) as grp1, sum(grp2) as grp2, sum(grp3) as grp3 from have where var='Worst' group by  var;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 30 Oct 2019 11:08:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600327#M173498</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2019-10-30T11:08:25Z</dc:date>
    </item>
    <item>
      <title>Re: sum of values column wise</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600329#M173500</link>
      <description>&lt;P&gt;Alternatively by data step&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Var$ Var1$ grp1 grp2 grp3;
cards;
best  A 3 4 6
best  B 4 1 7
best  C 1 3 1
Worst G 5 7 1
Worst E 5 2 6
;

data want;
set have;
retain _grp1;
by var notsorted;
output;
if first.var then do; _grp1=.; _grp2=.; _grp3=.;end;
if grp1 ne . then _grp1+grp1;
if grp2 ne . then _grp2+grp2;
if grp3 ne . then _grp3+grp3;
grp1=_grp1;
grp2=_grp2;
grp3=_grp3;
var1='Tot';
if last.var;
drop _:;
output;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 30 Oct 2019 11:13:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600329#M173500</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2019-10-30T11:13:45Z</dc:date>
    </item>
    <item>
      <title>Re: sum of values column wise</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600330#M173501</link>
      <description>it Worked thank you cheers &lt;span class="lia-unicode-emoji" title=":smiling_face_with_smiling_eyes:"&gt;😊&lt;/span&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 30 Oct 2019 11:23:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600330#M173501</guid>
      <dc:creator>Vijay77</dc:creator>
      <dc:date>2019-10-30T11:23:24Z</dc:date>
    </item>
    <item>
      <title>Re: sum of values column wise</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600332#M173503</link>
      <description>&lt;P&gt;Don't clutter up your dataset with additional observations that will only cause confusion later on.&lt;/P&gt;
&lt;P&gt;The SAS reporting procedures (especially PROC REPORT) allow the dynamic creation of summary lines in the printed output.&lt;/P&gt;
&lt;P&gt;That said, try a data step:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input var $ var1 $ grp1 grp2 grp3;
datalines;
best A 3 4 6
best B 4 1 7
best C 1 3 1
Worst G 5 7 1
Worst E 5 2 6
;

data want;
set have;
by var notsorted; 
array invars {3} grp1-grp3;
array temp {3} _temporary_;
output;
if first.var
then do i = 1 to 3;
  temp{i} = invars{i};
end;
else do i = 1 to 3;
  temp{i} + invars{i};
end;
if last.var
then do;
  do i = 1 to 3;
    invars{i} = temp{i};
  end;
  var1 = 'Tot';
  var = '';
  output;
end;
drop i;
run;

proc print data=want;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;PRE&gt;Beob.     var     var1    grp1    grp2    grp3

  1      best     A         3       4       6 
  2      best     B         4       1       7 
  3      best     C         1       3       1 
  4               Tot       8       8      14 
  5      Worst    G         5       7       1 
  6      Worst    E         5       2       6 
  7               Tot      10       9       7 
&lt;/PRE&gt;</description>
      <pubDate>Wed, 30 Oct 2019 11:29:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600332#M173503</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-10-30T11:29:44Z</dc:date>
    </item>
    <item>
      <title>Re: sum of values column wise</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600333#M173504</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/277769"&gt;@Vijay77&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Simple way to you. Sort the data set by VAR. I have upcased b for keeping the order of Var after Sorting. Then at the end of each Var, write out new record with sums:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Var$ Var1$ grp1 grp2 grp3;
cards;
Best  A 3 4 6
Best  B 4 1 7
Best  C 1 3 1
Worst G 5 7 1
Worst E 5 2 6
;
run;
proc sort data = have;
   by Var;
run;

data want;
   do until(last.Var);
      set have;
      by Var;
      output;
      t1 + grp1; t2 + grp2; t3 + grp3;
   end;
   Var = '   ';
   Var1 = 'Tot';
   grp1 = t1; grp2 = t2; grp3 = t3;
   output;
   call missing(of t:);
drop t:;
run;
proc print data = want;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 30 Oct 2019 11:36:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600333#M173504</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2019-10-30T11:36:46Z</dc:date>
    </item>
    <item>
      <title>Re: sum of values column wise</title>
      <link>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600434#M173558</link>
      <description>&lt;P&gt;PROC SUMMARY can make that easy.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input var $ var1 $ grp1 grp2 grp3;
datalines;
best A 3 4 6
best B 4 1 7
best C 1 3 1
Worst G 5 7 1
Worst E 5 2 6
;;;;
   run;
proc print;
   run;
proc summary chartype descendtypes;
   by var notsorted;
   class var1;
   output out=test sum(grp:)=;
   run;
proc print;
   run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 366px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/33479iDB3FD57CDA6F06D1/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 30 Oct 2019 15:51:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/sum-of-values-column-wise/m-p/600434#M173558</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2019-10-30T15:51:47Z</dc:date>
    </item>
  </channel>
</rss>

