Hi All,
Kindly request you to help me to approach the below problem.
I have Channel , Item and Count. I want to get the sum of all count , i.e 2611 and then divide by each count to get weights . So weights is 1620/2611 = 62.05% .
channel | item | count | weights |
Commercial_Sales | ItemA | 1620 | 62.05% |
Commercial_Sales | ItemB | 41 | 1.57% |
Contact_Centre | ItemA | 147 | 5.63% |
Contact_Centre | ItemB | 803 | 30.75% |
2611 |
Below is the data
data have; input Channel :$30. item :$10. count 8.; datalines; Commercial_Sales ItemA 1620 Commercial_Sales ItemB 41 Contact_Centre ItemA 147 Contact_Centre ItemB 803 ; run;
data have;
input Channel :$30. item :$10. count ;
datalines;
Commercial_Sales ItemA 1620
Commercial_Sales ItemB 41
Contact_Centre ItemA 147
Contact_Centre ItemB 803
;
run;
proc sql;
create table want as
select *, count/sum(count) as weights format=percent10.2
from have;
quit;
data have;
input Channel :$30. item :$10. count ;
datalines;
Commercial_Sales ItemA 1620
Commercial_Sales ItemB 41
Contact_Centre ItemA 147
Contact_Centre ItemB 803
;
run;
proc sql;
create table want as
select *, count/sum(count) as weights format=percent10.2
from have;
quit;
Just to provide one of the alternate possibilities:
proc freq data=have noprint; tables channel*item/list out=want(rename=( percent=weights)) ; weight count; run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.