<?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: Resume count matrix in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Resume-count-matrix/m-p/829691#M327807</link>
    <description>&lt;P&gt;I don't think BU1/BU4 column is correct? It should be 0?&lt;/P&gt;
&lt;P&gt;Here's a trick using PROC CORR&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards dsd truncover;
informat CUST BU1-BU4 $8.;
input CUST	BU1-BU4 ;
cards;
123,SEG,AFI,,
124,,AFI,ARS,
125,SEG,,,
126,,AFI,,
127,,,ARS,
128,,,,FID
;;;;

run;

data convert2binary;
set have;
array bu(4) bu1-bu4;
array _bu(4) _bu1-_bu4;
do i=1 to dim(bu);
if not missing(bu(i)) then _bu(i) = 1;
else _bu(i) = 0;
end;
run;

ods select none;
ods output sscp=coocs;
proc corr data=convert2binary sscp;
var _bu1-_bu4;
run;
ods select all;

proc print data=coocs;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 22 Aug 2022 16:20:23 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2022-08-22T16:20:23Z</dc:date>
    <item>
      <title>Resume count matrix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resume-count-matrix/m-p/829681#M327802</link>
      <description>&lt;P&gt;Hello communities people&lt;/P&gt;
&lt;P&gt;I have this table, where each row is a customer and each colum BUn represent that id this customer has active products on that business unit (in this example I use a text, but we can also use a binary flag)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="346"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="font-weight: 400;"&gt;CUST&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;BU1&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;BU2&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;BU3&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;BU4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="font-weight: 400;"&gt;123&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;SEG&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;AFI&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="font-weight: 400;"&gt;124&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;AFI&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;ARS&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="font-weight: 400;"&gt;125&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;SEG&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="font-weight: 400;"&gt;126&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;AFI&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="font-weight: 400;"&gt;127&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;ARS&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="font-weight: 400;"&gt;128&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;FID&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD style="font-weight: 400;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm tryng to buid a count matrix to try to get this result&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="346"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="90"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="64"&gt;BU1&lt;/TD&gt;
&lt;TD width="64"&gt;BU2&lt;/TD&gt;
&lt;TD width="64"&gt;BU3&lt;/TD&gt;
&lt;TD width="64"&gt;BU4&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BU1&lt;/TD&gt;
&lt;TD&gt;2&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;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BU2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BU3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;BU4&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;where each cell is a frequency (count) of customers that are commons between business units.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I was trying to do this report using PROC TABULATE, but I did not get the result&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC TABULATE
DATA=WORK.W_DATOS_CLIENTE2
	
	;
	
	VAR CLIENTE_ID;
	CLASS FILIAL1 /	ORDER=UNFORMATTED MISSING;
	CLASS FILIAL2 /	ORDER=UNFORMATTED MISSING;
	CLASS FILIAL3 /	ORDER=UNFORMATTED MISSING;
	CLASS FILIAL4 /	ORDER=UNFORMATTED MISSING;
	TABLE 
		/* ROW Statement */
		FILIAL1 FILIAL2 FILIAL3 FILIAL4 ,
		/* COLUMN Statement */
		FILIAL1 *(CLIENTE_ID * N=' ' )FILIAL2 *(CLIENTE_ID * N=' ' )FILIAL3 *(CLIENTE_ID * N=' ' )FILIAL4 *(CLIENTE_ID * N=' ' ) 		;
	;

RUN;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Aug 2022 15:43:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resume-count-matrix/m-p/829681#M327802</guid>
      <dc:creator>osmelbrito</dc:creator>
      <dc:date>2022-08-22T15:43:35Z</dc:date>
    </item>
    <item>
      <title>Re: Resume count matrix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resume-count-matrix/m-p/829691#M327807</link>
      <description>&lt;P&gt;I don't think BU1/BU4 column is correct? It should be 0?&lt;/P&gt;
&lt;P&gt;Here's a trick using PROC CORR&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards dsd truncover;
informat CUST BU1-BU4 $8.;
input CUST	BU1-BU4 ;
cards;
123,SEG,AFI,,
124,,AFI,ARS,
125,SEG,,,
126,,AFI,,
127,,,ARS,
128,,,,FID
;;;;

run;

data convert2binary;
set have;
array bu(4) bu1-bu4;
array _bu(4) _bu1-_bu4;
do i=1 to dim(bu);
if not missing(bu(i)) then _bu(i) = 1;
else _bu(i) = 0;
end;
run;

ods select none;
ods output sscp=coocs;
proc corr data=convert2binary sscp;
var _bu1-_bu4;
run;
ods select all;

proc print data=coocs;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 22 Aug 2022 16:20:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resume-count-matrix/m-p/829691#M327807</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2022-08-22T16:20:23Z</dc:date>
    </item>
    <item>
      <title>Re: Resume count matrix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resume-count-matrix/m-p/829696#M327809</link>
      <description>&lt;P&gt;thanks&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That's what I was trying to do.&lt;/P&gt;
&lt;P&gt;But why do you use proc corr? As I understand your code, you use sscp option in order to show only sum of squares&lt;/P&gt;</description>
      <pubDate>Mon, 22 Aug 2022 16:45:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resume-count-matrix/m-p/829696#M327809</guid>
      <dc:creator>osmelbrito</dc:creator>
      <dc:date>2022-08-22T16:45:26Z</dc:date>
    </item>
    <item>
      <title>Re: Resume count matrix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resume-count-matrix/m-p/829702#M327814</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/26078"&gt;@osmelbrito&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But why do you use proc corr? As I understand your code, you use sscp option in order to show only sum of squares&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Mathematically it works out to be the same thing, so let the SAS process that's optimized to calculate this, do it that way.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Aug 2022 16:55:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resume-count-matrix/m-p/829702#M327814</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2022-08-22T16:55:57Z</dc:date>
    </item>
    <item>
      <title>Re: Resume count matrix</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Resume-count-matrix/m-p/829843#M327885</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards dsd truncover;
informat CUST BU1-BU4 $8.;
input CUST BU1-BU4 ;
cards;
123,SEG,AFI,,
124,,AFI,ARS,
125,SEG,,,
126,,AFI,,
127,,,ARS,
128,,,,FID
;;;;
run;
ods select none;
ods output burt=want(keep=Label SEG AFI ARS FID where=(Label is not missing));
proc corresp data=have observed short mca missing;
tables BU1-BU4;
run;
ods select all;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 23 Aug 2022 12:19:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Resume-count-matrix/m-p/829843#M327885</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2022-08-23T12:19:49Z</dc:date>
    </item>
  </channel>
</rss>

