<?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: Calculate YoY growth within groups in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Calculate-YoY-growth-within-groups/m-p/870530#M343824</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines truncover;
input Year        Category &amp;amp; $40.        Product &amp;amp; $40.         Product_ID        sales;
datalines;
2022        Dairy        Milk        101        1200
2022        Dairy        Plain Yogurt        102        1434.5
2022        Dairy        Flavored Yogurt        103        2452
2022        Condiment        Salsa        104        1345
2022        Condiment        Soy Sauce        105        3456
2022        Condiment        Ranch        106        1934
2022        Dairy        Egg        107        2950.6
2022        Cleaning Supplies        Mop        108        2745
2022        Cleaning Supplies        Liquid Detergent        109        5548
2023        Dairy        Flavored Yogurt        103        3756
2023        Dairy        Milk        101        3658
2023        Dairy        Plain Yogurt        102        2534.4
2023        Condiment        Soy Sauce        105        0
2023        Condiment        Salsa        104        2455
2023        Condiment        Ranch        106        3456
2023        Dairy        Egg        107        4793
2023        Cleaning Supplies        Liquid Detergent        109        2356
2023        Cleaning Supplies        Mop        108        2669
;

proc sql;
create table want as
select *,divide(sales-(select sales from have 
where  Category=a.Category and  Product=a.Product and Product_ID=a.Product_ID and year=a.year-1)
,sales) as YoY format=percentn8.2
 from have as a 
  where year=2023;
quit;
data want;
 set want;
 if YoY=.M then YoY=._;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 19 Apr 2023 11:50:58 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2023-04-19T11:50:58Z</dc:date>
    <item>
      <title>Calculate YoY growth within groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-YoY-growth-within-groups/m-p/870450#M343802</link>
      <description>&lt;P&gt;I'm looking to calculate YoY growth rate of a few products that fall into different categories. Below is a sample data&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Year&lt;/TD&gt;&lt;TD&gt;Category&lt;/TD&gt;&lt;TD&gt;Product&lt;/TD&gt;&lt;TD&gt;Product_ID&lt;/TD&gt;&lt;TD&gt;sales&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2022&lt;/TD&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Milk&lt;/TD&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;1200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2022&lt;/TD&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Plain Yogurt&lt;/TD&gt;&lt;TD&gt;102&lt;/TD&gt;&lt;TD&gt;1434.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2022&lt;/TD&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Flavored Yogurt&lt;/TD&gt;&lt;TD&gt;103&lt;/TD&gt;&lt;TD&gt;2452&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2022&lt;/TD&gt;&lt;TD&gt;Condiment&lt;/TD&gt;&lt;TD&gt;Salsa&lt;/TD&gt;&lt;TD&gt;104&lt;/TD&gt;&lt;TD&gt;1345&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2022&lt;/TD&gt;&lt;TD&gt;Condiment&lt;/TD&gt;&lt;TD&gt;Soy Sauce&lt;/TD&gt;&lt;TD&gt;105&lt;/TD&gt;&lt;TD&gt;3456&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2022&lt;/TD&gt;&lt;TD&gt;Condiment&lt;/TD&gt;&lt;TD&gt;Ranch&lt;/TD&gt;&lt;TD&gt;106&lt;/TD&gt;&lt;TD&gt;1934&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2022&lt;/TD&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Egg&lt;/TD&gt;&lt;TD&gt;107&lt;/TD&gt;&lt;TD&gt;2950.6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2022&lt;/TD&gt;&lt;TD&gt;Cleaning Supplies&lt;/TD&gt;&lt;TD&gt;Mop&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;2745&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2022&lt;/TD&gt;&lt;TD&gt;Cleaning Supplies&lt;/TD&gt;&lt;TD&gt;Liquid Detergent&lt;/TD&gt;&lt;TD&gt;109&lt;/TD&gt;&lt;TD&gt;5548&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023&lt;/TD&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Flavored Yogurt&lt;/TD&gt;&lt;TD&gt;103&lt;/TD&gt;&lt;TD&gt;3756&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023&lt;/TD&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Milk&lt;/TD&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;3658&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023&lt;/TD&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Plain Yogurt&lt;/TD&gt;&lt;TD&gt;102&lt;/TD&gt;&lt;TD&gt;2534.4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023&lt;/TD&gt;&lt;TD&gt;Condiment&lt;/TD&gt;&lt;TD&gt;Soy Sauce&lt;/TD&gt;&lt;TD&gt;105&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023&lt;/TD&gt;&lt;TD&gt;Condiment&lt;/TD&gt;&lt;TD&gt;Salsa&lt;/TD&gt;&lt;TD&gt;104&lt;/TD&gt;&lt;TD&gt;2455&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023&lt;/TD&gt;&lt;TD&gt;Condiment&lt;/TD&gt;&lt;TD&gt;Ranch&lt;/TD&gt;&lt;TD&gt;106&lt;/TD&gt;&lt;TD&gt;3456&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023&lt;/TD&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Egg&lt;/TD&gt;&lt;TD&gt;107&lt;/TD&gt;&lt;TD&gt;4793&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023&lt;/TD&gt;&lt;TD&gt;Cleaning Supplies&lt;/TD&gt;&lt;TD&gt;Liquid Detergent&lt;/TD&gt;&lt;TD&gt;109&lt;/TD&gt;&lt;TD&gt;2356&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023&lt;/TD&gt;&lt;TD&gt;Cleaning Supplies&lt;/TD&gt;&lt;TD&gt;Mop&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;2669&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can I calculate YoY growth rate of each product ID in the above scenario such that my final output looks like below using proc sql? If the sales for current year is 0, I would like its YoY to be "-". Please help me on this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Category&lt;/TD&gt;&lt;TD&gt;Product&lt;/TD&gt;&lt;TD&gt;Product_ID&lt;/TD&gt;&lt;TD&gt;YoY&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Milk&lt;/TD&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;67%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Plain Yogurt&lt;/TD&gt;&lt;TD&gt;102&lt;/TD&gt;&lt;TD&gt;43%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Flavored Yogurt&lt;/TD&gt;&lt;TD&gt;103&lt;/TD&gt;&lt;TD&gt;35%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Condiment&lt;/TD&gt;&lt;TD&gt;Salsa&lt;/TD&gt;&lt;TD&gt;104&lt;/TD&gt;&lt;TD&gt;45%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Condiment&lt;/TD&gt;&lt;TD&gt;Soy Sauce&lt;/TD&gt;&lt;TD&gt;105&lt;/TD&gt;&lt;TD&gt;-&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Condiment&lt;/TD&gt;&lt;TD&gt;Ranch&lt;/TD&gt;&lt;TD&gt;106&lt;/TD&gt;&lt;TD&gt;44%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Dairy&lt;/TD&gt;&lt;TD&gt;Egg&lt;/TD&gt;&lt;TD&gt;107&lt;/TD&gt;&lt;TD&gt;38%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Cleaning Supplies&lt;/TD&gt;&lt;TD&gt;Mop&lt;/TD&gt;&lt;TD&gt;108&lt;/TD&gt;&lt;TD&gt;-3%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Cleaning Supplies&lt;/TD&gt;&lt;TD&gt;Liquid Detergent&lt;/TD&gt;&lt;TD&gt;109&lt;/TD&gt;&lt;TD&gt;-135%&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Apr 2023 21:42:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-YoY-growth-within-groups/m-p/870450#M343802</guid>
      <dc:creator>hk24</dc:creator>
      <dc:date>2023-04-18T21:42:20Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate YoY growth within groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-YoY-growth-within-groups/m-p/870497#M343809</link>
      <description>&lt;P&gt;Shouldn't the YoY for milk be 204% reflecting a 204% increase in 2023 compared to 2022&amp;nbsp;&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":astonished_face:"&gt;😲&lt;/span&gt;?&lt;/P&gt;
&lt;P&gt;(3658-1200)/1200&lt;/P&gt;</description>
      <pubDate>Wed, 19 Apr 2023 07:45:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-YoY-growth-within-groups/m-p/870497#M343809</guid>
      <dc:creator>Oligolas</dc:creator>
      <dc:date>2023-04-19T07:45:17Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate YoY growth within groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-YoY-growth-within-groups/m-p/870505#M343812</link>
      <description>&lt;P&gt;Something like this, i suppose:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have;                                                                                                                    
  by year product_id;                                                                                                                   
run;                                                                                                                                    
data want;                                                                                                                              
  merge have(where=(year=2022))                                                                                                         
     have(where=(year=2023) keep=year product_id sales rename=(sales=sales23));                                                         
  by product_id;                                                                                                                        
  if sales23&amp;gt;0 then                                                                                                                     
    YoY=(sales23-sales)/sales23;                                                                                                        
  drop sales: year;                                                                                                                     
  format YoY percent7.0;                                                                                                                
run;         
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This will get the numbers you showed, but like&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/77163"&gt;@Oligolas&lt;/a&gt;&amp;nbsp;I think the correct calculation would be&amp;nbsp;&lt;CODE class=" language-sas"&gt;YoY=(sales23-sales)/sales&lt;/CODE&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Apr 2023 09:15:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-YoY-growth-within-groups/m-p/870505#M343812</guid>
      <dc:creator>s_lassen</dc:creator>
      <dc:date>2023-04-19T09:15:27Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate YoY growth within groups</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Calculate-YoY-growth-within-groups/m-p/870530#M343824</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines truncover;
input Year        Category &amp;amp; $40.        Product &amp;amp; $40.         Product_ID        sales;
datalines;
2022        Dairy        Milk        101        1200
2022        Dairy        Plain Yogurt        102        1434.5
2022        Dairy        Flavored Yogurt        103        2452
2022        Condiment        Salsa        104        1345
2022        Condiment        Soy Sauce        105        3456
2022        Condiment        Ranch        106        1934
2022        Dairy        Egg        107        2950.6
2022        Cleaning Supplies        Mop        108        2745
2022        Cleaning Supplies        Liquid Detergent        109        5548
2023        Dairy        Flavored Yogurt        103        3756
2023        Dairy        Milk        101        3658
2023        Dairy        Plain Yogurt        102        2534.4
2023        Condiment        Soy Sauce        105        0
2023        Condiment        Salsa        104        2455
2023        Condiment        Ranch        106        3456
2023        Dairy        Egg        107        4793
2023        Cleaning Supplies        Liquid Detergent        109        2356
2023        Cleaning Supplies        Mop        108        2669
;

proc sql;
create table want as
select *,divide(sales-(select sales from have 
where  Category=a.Category and  Product=a.Product and Product_ID=a.Product_ID and year=a.year-1)
,sales) as YoY format=percentn8.2
 from have as a 
  where year=2023;
quit;
data want;
 set want;
 if YoY=.M then YoY=._;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 Apr 2023 11:50:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Calculate-YoY-growth-within-groups/m-p/870530#M343824</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2023-04-19T11:50:58Z</dc:date>
    </item>
  </channel>
</rss>

