<?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 How to merge two files but not concatenate ? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726089#M225618</link>
    <description>&lt;P&gt;Hi all SAS Users,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Today I faced a problem relating to the Table display. Normally we have average at the final row of a file.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My dataset is&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;LOC            x1       x2          develop
AUS            10       20           1
AUT            15       25           1
BEL            8        21           1
ARG            3         5           0
BGR            5         6           0
BRA            1         4           0&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;What I want is&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;LOC            x1       x2          
AUS            10       20          
AUT            15       25           
BEL             8       21           
Average        11       22
ARG            3         5           
BGR            5         6          
BRA            1         4           
Average        3         5&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;I can calculate the average by proc means easily but I do not know how to present like that.&lt;/P&gt;
&lt;P&gt;My code is&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have;&lt;BR /&gt;by descending develop;&lt;BR /&gt;run;&lt;BR /&gt;proc means data=have noprint nway;
   class develop;
   var x1 x2;
   output out=want mean=meanx1 meanx2;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;That I have output "want":&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;develop    meanx1   meanx2
1          11       22
0&amp;nbsp;&amp;nbsp;&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;5&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;But I do not know how to display what I want above.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Warmest regards.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 14 Mar 2021 08:42:19 GMT</pubDate>
    <dc:creator>Phil_NZ</dc:creator>
    <dc:date>2021-03-14T08:42:19Z</dc:date>
    <item>
      <title>How to merge two files but not concatenate ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726089#M225618</link>
      <description>&lt;P&gt;Hi all SAS Users,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Today I faced a problem relating to the Table display. Normally we have average at the final row of a file.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My dataset is&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;LOC            x1       x2          develop
AUS            10       20           1
AUT            15       25           1
BEL            8        21           1
ARG            3         5           0
BGR            5         6           0
BRA            1         4           0&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;What I want is&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;LOC            x1       x2          
AUS            10       20          
AUT            15       25           
BEL             8       21           
Average        11       22
ARG            3         5           
BGR            5         6          
BRA            1         4           
Average        3         5&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;I can calculate the average by proc means easily but I do not know how to present like that.&lt;/P&gt;
&lt;P&gt;My code is&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have;&lt;BR /&gt;by descending develop;&lt;BR /&gt;run;&lt;BR /&gt;proc means data=have noprint nway;
   class develop;
   var x1 x2;
   output out=want mean=meanx1 meanx2;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;That I have output "want":&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;develop    meanx1   meanx2
1          11       22
0&amp;nbsp;&amp;nbsp;&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;5&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;But I do not know how to display what I want above.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Warmest regards.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 14 Mar 2021 08:42:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726089#M225618</guid>
      <dc:creator>Phil_NZ</dc:creator>
      <dc:date>2021-03-14T08:42:19Z</dc:date>
    </item>
    <item>
      <title>Re: How to merge two files but not concatenate ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726092#M225620</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input LOC $3.  x1       x2          develop;
cards;
AUS  10       20 1
AUT  15       25 1
BEL  8        21 1
ARG  3         5 0
BGR  5         6 0
BRA  1         4 0
;
run;

proc sql noprint;
create table have1 as
select *,avg(x1) as avg_x1,avg(x2) as avg_x2 from have group by develop;
quit;

proc sort data=have1
 out=have2(keep= avg_x1 avg_x2) nodupkey; by avg_x1 avg_x2 ;run;

 proc sql noprint;
 create table want as 
 select loc,x1,x2 from have 
 union all
 select 'Average' as loc,avg_x1 as x1,avg_x2 as x2 from have2
 quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 14 Mar 2021 09:31:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726092#M225620</guid>
      <dc:creator>singhsahab</dc:creator>
      <dc:date>2021-03-14T09:31:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to merge two files but not concatenate ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726093#M225621</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/153275"&gt;@singhsahab&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for your suggestion, but your code ends up like that&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;LOC	      x1	x2
AUS	      10	20
AUT	      15	25
BEL	       8	21
ARG	       3	5
BGR	       5	6
BRA	       1	4
Average	   3	5
Average	   11	22&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Could you please help me to sort it out?&lt;/P&gt;
&lt;P&gt;Warm regards.&lt;/P&gt;</description>
      <pubDate>Sun, 14 Mar 2021 09:52:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726093#M225621</guid>
      <dc:creator>Phil_NZ</dc:creator>
      <dc:date>2021-03-14T09:52:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to merge two files but not concatenate ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726095#M225623</link>
      <description>&lt;P&gt;"Use the BY-group processing Luke" &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input LOC $ 3. x1 x2 develop;
cards;
AUS            10       20           1
AUT            15       25           1
BEL            8        21           1
ARG            3         5           0
BGR            5         6           0
BRA            1         4           0
;
run;
proc print;
run;

data want;
  length LOC $ 7;
  set have;
  by descending develop;

  if first.develop then
    do;
      _sumX1 = 0;
      _countX1 = 0;
      _sumX2 = 0;
      _countX2 = 0;
    end;

  _sumX1 + X1;
  _countX1 + (X1 &amp;gt; .z);
  _sumX2 + X2;
  _countX2 + (X2 &amp;gt; .z);

  output;

  if last.develop then
    do;
      LOC = "Average";
      X1 = _sumX1 / _countX1;
      X2 = _sumX2 / _countX2;
      output;
    end;
  drop develop _:;
run;
proc print;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If you have more Xes (X1, X2,..., Xn) adding the "use of arrays" may be useful.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;</description>
      <pubDate>Sun, 14 Mar 2021 10:21:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726095#M225623</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2021-03-14T10:21:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to merge two files but not concatenate ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726103#M225627</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input LOC $  x1       x2          develop;
cards;
AUS  10       20 1
AUT  15       25 1
BEL  8        21 1
ARG  3         5 0
BGR  5         6 0
BRA  1         4 0
;
run;
proc report data=have nowd;
columns  loc x1 x2  develop;
define develop/group noprint descending;
define loc/display;
define x1/analysis mean;
define x2/analysis mean;
compute after develop;
loc='Average';
endcomp;
break after develop/summarize;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 14 Mar 2021 11:30:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726103#M225627</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2021-03-14T11:30:53Z</dc:date>
    </item>
    <item>
      <title>Re: How to merge two files but not concatenate ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726104#M225628</link>
      <description>&lt;P&gt;I'm not fond of putting summary values into data as one misremember it is there and a model blows up for validity.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data have;
input LOC $3.  x1       x2          develop;
cards;
AUS  10       20 1
AUT  15       25 1
BEL  8        21 1
ARG  3         5 0
BGR  5         6 0
BRA  1         4 0
;
run;

proc report data=have;
   columns develop loc x1 x2;
   define develop / group noprint order=data;
   define loc /group order=data;
   define x1 /mean;
   define x2 /mean;
   break after develop/summarize;
run;&lt;/PRE&gt;</description>
      <pubDate>Sun, 14 Mar 2021 11:37:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/726104#M225628</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2021-03-14T11:37:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to merge two files but not concatenate ?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/727327#M226194</link>
      <description>&lt;P&gt;Just for fun, version with arrays:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input LOC $ 3. x1 x2 develop;
x3 = 2 * x1;
x4 = 2 * x2;
cards;
AUS 10 20 1
AUT 15 25 1
BEL  8 21 1
ARG  3  5 0
BGR  5  6 0
BRA  1  4 0
;
run;
proc print;
run;

%let NoX= 4;

data want;
  length LOC $ 12;
  set have;
  by descending develop;
  array X(_i_) x1-x&amp;amp;NoX.;
  array S(_i_) _sumX1-_sumX&amp;amp;NoX.;
  array C(_i_) _countX1-_countX&amp;amp;NoX.;

  if first.develop then
    do over S;
      S = 0;
      C = 0;
    end;

  do over X;
    S + X;
    C + (X &amp;gt; .z);
  end;
  output;

  if last.develop then
    do;
      LOC = catx(" ", "Average", develop);
      do over X;
        X = S / C;
      end;
      output;
    end;
  drop develop _:;
run;
proc print;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;B-)&lt;/P&gt;</description>
      <pubDate>Thu, 18 Mar 2021 08:38:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-merge-two-files-but-not-concatenate/m-p/727327#M226194</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2021-03-18T08:38:14Z</dc:date>
    </item>
  </channel>
</rss>

