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;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.
Ready to level-up your skills? Choose your own adventure.