<?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: Creating new rows in an existing dataset based on sums of groups in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-rows-in-an-existing-dataset-based-on-sums-of-groups/m-p/469496#M120117</link>
    <description>&lt;P&gt;Like this?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data HAVE;
input YEAR INDUSTRY $ EMP;
cards;
2001 011 1
2002 011 2
2001 010 1
2001 012 3
2002 012 1
2001 020 4
2002 020 2
run;

proc format;
 value $indgrp (multilabel) '010'-'012'             ='01'
                            '020'                   ='02'
                            '010'-'019','020'-'029' ='A' ;
run;

proc summary data=HAVE nway ;
  class INDUSTRY  /mlf;
  class YEAR ;
  var EMP;
  format INDUSTRY $indgrp.;
  output out=SUMS(keep=YEAR INDUSTRY EMP) sum=;
run;

data WANT;
  set HAVE SUMS(in=S);
  format INDUSTRY ;
  if S then INDUSTRY=put(INDUSTRY, $indgrp.);
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;YEAR INDUSTRY EMP&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 011&amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 011 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;2&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 010 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;1&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 012 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;3&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 012 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 020 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;4&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 020 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;2&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 01 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;5&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 01 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;3&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 02 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;4&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 02 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;2&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 A &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;9&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 A &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;5&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 12 Jun 2018 03:12:22 GMT</pubDate>
    <dc:creator>ChrisNZ</dc:creator>
    <dc:date>2018-06-12T03:12:22Z</dc:date>
    <item>
      <title>Creating new rows in an existing dataset based on sums of groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-rows-in-an-existing-dataset-based-on-sums-of-groups/m-p/469485#M120112</link>
      <description>&lt;P&gt;I have a dataset that looks like this:&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Year&lt;/TD&gt;&lt;TD&gt;Industy&lt;/TD&gt;&lt;TD&gt;Emp&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;011&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;011&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;010&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;012&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;012&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;020&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;020&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have to create new rows based on these groups:&lt;/P&gt;&lt;P&gt;01=011,010,012&lt;/P&gt;&lt;P&gt;02=020&lt;/P&gt;&lt;P&gt;A=01,02&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to sum over the groups by year so that the final data set loos as this:&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;Year&lt;/TD&gt;&lt;TD&gt;Industy&lt;/TD&gt;&lt;TD&gt;Emp&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;011&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;011&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;010&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;012&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;012&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;020&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;020&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;01&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;01&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;02&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;02&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Tue, 12 Jun 2018 02:01:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-rows-in-an-existing-dataset-based-on-sums-of-groups/m-p/469485#M120112</guid>
      <dc:creator>BenBrady</dc:creator>
      <dc:date>2018-06-12T02:01:30Z</dc:date>
    </item>
    <item>
      <title>Re: Creating new rows in an existing dataset based on sums of groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-rows-in-an-existing-dataset-based-on-sums-of-groups/m-p/469496#M120117</link>
      <description>&lt;P&gt;Like this?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data HAVE;
input YEAR INDUSTRY $ EMP;
cards;
2001 011 1
2002 011 2
2001 010 1
2001 012 3
2002 012 1
2001 020 4
2002 020 2
run;

proc format;
 value $indgrp (multilabel) '010'-'012'             ='01'
                            '020'                   ='02'
                            '010'-'019','020'-'029' ='A' ;
run;

proc summary data=HAVE nway ;
  class INDUSTRY  /mlf;
  class YEAR ;
  var EMP;
  format INDUSTRY $indgrp.;
  output out=SUMS(keep=YEAR INDUSTRY EMP) sum=;
run;

data WANT;
  set HAVE SUMS(in=S);
  format INDUSTRY ;
  if S then INDUSTRY=put(INDUSTRY, $indgrp.);
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;YEAR INDUSTRY EMP&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 011&amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 011 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;2&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 010 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;1&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 012 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;3&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 012 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 020 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;4&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 020 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;2&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 01 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;5&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 01 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;3&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 02 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;4&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 02 &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;2&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2001 A &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;9&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;2002 A &lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;5&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Jun 2018 03:12:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-rows-in-an-existing-dataset-based-on-sums-of-groups/m-p/469496#M120117</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2018-06-12T03:12:22Z</dc:date>
    </item>
    <item>
      <title>Re: Creating new rows in an existing dataset based on sums of groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Creating-new-rows-in-an-existing-dataset-based-on-sums-of-groups/m-p/469502#M120120</link>
      <description>&lt;P&gt;Or this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data HAVE;
input YEAR INDUSTRY $ EMP;
cards;
2001 011 1
2002 011 2
2001 010 1
2001 012 3
2002 012 1
2001 020 4
2002 020 2
;

data groups;
input group $ industry $;
datalines;
01 011
01 010
01 012
02 020
A 011
A 010
A 012
A 020
;

proc sql;
create table want as
select year, industry, emp from have
union all
select year, group as industry, sum(emp) as emp
from have inner join groups on have.industry=groups.industry
group by group, year;
quit; 
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 12 Jun 2018 03:35:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Creating-new-rows-in-an-existing-dataset-based-on-sums-of-groups/m-p/469502#M120120</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2018-06-12T03:35:49Z</dc:date>
    </item>
  </channel>
</rss>

