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;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.