<?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 Summarize by Multiple Variables in Data Step in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/423913#M104296</link>
    <description>&lt;P&gt;Below is the dataset I have&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="654"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="83"&gt;What I have&amp;nbsp;&lt;/TD&gt;
&lt;TD width="92"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="108"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="119"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="81"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="107"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Customer ID&lt;/TD&gt;
&lt;TD&gt;Ord_Month&lt;/TD&gt;
&lt;TD&gt;Channel&lt;/TD&gt;
&lt;TD&gt;Brand 1 Flag&lt;/TD&gt;
&lt;TD&gt;Brand 2 Flag&lt;/TD&gt;
&lt;TD&gt;Transaction Flag&lt;/TD&gt;
&lt;TD&gt;Amount&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2016-02&lt;/TD&gt;
&lt;TD&gt;Web&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2016-02&lt;/TD&gt;
&lt;TD&gt;Retail&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;200&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2016-03&lt;/TD&gt;
&lt;TD&gt;Web&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;50&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2016-04&lt;/TD&gt;
&lt;TD&gt;Others&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2016-04&lt;/TD&gt;
&lt;TD&gt;Others&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;300&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to summarize the amount, transactions and customers by brand and channel. Transaction is valid if transaction flag is 1. Below is the output I expect&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="590"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="83"&gt;What I want&lt;/TD&gt;
&lt;TD width="92"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="108"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="119"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="81"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="107"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fiscal Period&lt;/TD&gt;
&lt;TD&gt;Total Amount&lt;/TD&gt;
&lt;TD&gt;Total Customers&lt;/TD&gt;
&lt;TD&gt;Total Transactions&lt;/TD&gt;
&lt;TD&gt;Brand&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;Channel&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2016-02&lt;/TD&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Brand 1&lt;/TD&gt;
&lt;TD&gt;Web&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2016-02&lt;/TD&gt;
&lt;TD&gt;200&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Brand 2&lt;/TD&gt;
&lt;TD&gt;Retail&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2016-03&lt;/TD&gt;
&lt;TD&gt;50&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Both&lt;/TD&gt;
&lt;TD&gt;Web&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2016-04&lt;/TD&gt;
&lt;TD&gt;390&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;Brand 2&lt;/TD&gt;
&lt;TD&gt;Others&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For each distinct combination of Brand and Channel for a given fiscal period I want to calculate the total customers (count of customer ID), total transactions (count of transaction flag) and total amount (sum of amount).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please help.&lt;/P&gt;</description>
    <pubDate>Thu, 28 Dec 2017 15:53:03 GMT</pubDate>
    <dc:creator>sasmaverick</dc:creator>
    <dc:date>2017-12-28T15:53:03Z</dc:date>
    <item>
      <title>Summarize by Multiple Variables in Data Step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/423913#M104296</link>
      <description>&lt;P&gt;Below is the dataset I have&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="654"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="83"&gt;What I have&amp;nbsp;&lt;/TD&gt;
&lt;TD width="92"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="108"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="119"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="81"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="107"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Customer ID&lt;/TD&gt;
&lt;TD&gt;Ord_Month&lt;/TD&gt;
&lt;TD&gt;Channel&lt;/TD&gt;
&lt;TD&gt;Brand 1 Flag&lt;/TD&gt;
&lt;TD&gt;Brand 2 Flag&lt;/TD&gt;
&lt;TD&gt;Transaction Flag&lt;/TD&gt;
&lt;TD&gt;Amount&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2016-02&lt;/TD&gt;
&lt;TD&gt;Web&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2016-02&lt;/TD&gt;
&lt;TD&gt;Retail&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;200&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2016-03&lt;/TD&gt;
&lt;TD&gt;Web&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;50&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2016-04&lt;/TD&gt;
&lt;TD&gt;Others&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;90&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;2016-04&lt;/TD&gt;
&lt;TD&gt;Others&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;300&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to summarize the amount, transactions and customers by brand and channel. Transaction is valid if transaction flag is 1. Below is the output I expect&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="590"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="83"&gt;What I want&lt;/TD&gt;
&lt;TD width="92"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="108"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="119"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="81"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="107"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Fiscal Period&lt;/TD&gt;
&lt;TD&gt;Total Amount&lt;/TD&gt;
&lt;TD&gt;Total Customers&lt;/TD&gt;
&lt;TD&gt;Total Transactions&lt;/TD&gt;
&lt;TD&gt;Brand&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;Channel&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2016-02&lt;/TD&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Brand 1&lt;/TD&gt;
&lt;TD&gt;Web&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2016-02&lt;/TD&gt;
&lt;TD&gt;200&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Brand 2&lt;/TD&gt;
&lt;TD&gt;Retail&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2016-03&lt;/TD&gt;
&lt;TD&gt;50&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Both&lt;/TD&gt;
&lt;TD&gt;Web&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2016-04&lt;/TD&gt;
&lt;TD&gt;390&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;Brand 2&lt;/TD&gt;
&lt;TD&gt;Others&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For each distinct combination of Brand and Channel for a given fiscal period I want to calculate the total customers (count of customer ID), total transactions (count of transaction flag) and total amount (sum of amount).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please help.&lt;/P&gt;</description>
      <pubDate>Thu, 28 Dec 2017 15:53:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/423913#M104296</guid>
      <dc:creator>sasmaverick</dc:creator>
      <dc:date>2017-12-28T15:53:03Z</dc:date>
    </item>
    <item>
      <title>Re: Summarize by Multiple Variables in Data Step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/423915#M104298</link>
      <description>&lt;P&gt;This would be so much easier if your data was modelled more normalized. So my first step would be to do create a new variable Brand. After that a simple SQL does the trick (as would proc means, tabulate, report etc):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
	input customer_id ord_month $ channel $ brand_1_flag brand_2_flag transaction_flag amount;
	drop brand_1_flag brand_2_flag;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;     length brand $8;

	if transaction_flag = 1;

	if brand_1_flag = 1 and brand_2_flag = 1 then do;
		brand = 'Both';
		output;
	end;
	else do;
		if brand_1_flag = 1 then do;
			brand = 'Brand 1';
			output;
		end;

		if brand_2_flag = 1 then do;
			brand = 'Brand 2';
			output;
		end;
	end;
	cards;
1 2016-02 Web 1 0 1 100
1 2016-02 Retail 0 1 1 200
2 2016-03 Web 1 1 	1 50
2 2016-04 Others 0 1 1 90
2 2016-04 Others 0 1 1 300
;

proc sql;
	select ord_month, sum(amount) as total_amount, count(transaction_flag) as total_transactions, brand, channel
		from have
			group by  ord_month, channel, brand;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The subsetting IF can also be delayed to a WHERE statement in the SQL.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this helps,&lt;/P&gt;
&lt;P&gt;-- Jan&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Dec 2017 16:15:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/423915#M104298</guid>
      <dc:creator>jklaverstijn</dc:creator>
      <dc:date>2017-12-28T16:15:21Z</dc:date>
    </item>
    <item>
      <title>Re: Summarize by Multiple Variables in Data Step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/423917#M104300</link>
      <description>&lt;P&gt;This is trivial to do in PROC MEANS or PROC SUMMARY. Give it a try.&lt;/P&gt;</description>
      <pubDate>Thu, 28 Dec 2017 16:36:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/423917#M104300</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2017-12-28T16:36:28Z</dc:date>
    </item>
    <item>
      <title>Re: Summarize by Multiple Variables in Data Step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/424007#M104344</link>
      <description>&lt;P&gt;Thanks a lot. Works like a charm.&lt;/P&gt;</description>
      <pubDate>Fri, 29 Dec 2017 07:32:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/424007#M104344</guid>
      <dc:creator>sasmaverick</dc:creator>
      <dc:date>2017-12-29T07:32:15Z</dc:date>
    </item>
    <item>
      <title>Re: Summarize by Multiple Variables in Data Step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/424025#M104351</link>
      <description>&lt;P&gt;It is sooo much simpler to do this in PROC MEANS or PROC SUMMARY, the idea of writing your own data step code and then PROC SQL to get the statistics seems inefficient.&lt;/P&gt;</description>
      <pubDate>Fri, 29 Dec 2017 12:03:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/424025#M104351</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2017-12-29T12:03:37Z</dc:date>
    </item>
    <item>
      <title>Re: Summarize by Multiple Variables in Data Step</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/424027#M104352</link>
      <description>&lt;P&gt;I dare you with this denormalized model. Remember there are brand_1 and brand_2 variables that need to be combined. I look forward to your mean MEANS. And don't make it non-trivial!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;-- Jan.&lt;/P&gt;</description>
      <pubDate>Fri, 29 Dec 2017 12:58:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Summarize-by-Multiple-Variables-in-Data-Step/m-p/424027#M104352</guid>
      <dc:creator>jklaverstijn</dc:creator>
      <dc:date>2017-12-29T12:58:10Z</dc:date>
    </item>
  </channel>
</rss>

