Hi
I am trying to generate weighted percentages by using the below codes but it generates un-weigted percentages.
My weight variable is discwt
data redo_t1;
input ID discwt 3.1 cat_flag race;
datalines;
01 0.2 1 1
02 0.4 1 2
03 0.4 1 1
04 0.4 1 2
05 0.4 1 1
06 0.1 3 2
07 1.2 3 1
08 0.4 3 2
09 1.0 3 1
10 0.4 3 2
;
run;
proc tabulate data = work.redo_t1;
title 'Table 1a';
class cat_flag race ;
table race, (cat_flag)*(N colpctn);
var discwt / weight = discwt;
weight discwt;
run;
I don't know what you are trying to do here, but you can't weight a variable by itself. That simply doesn't make any sense from a mathematical point of view. Please type in the desired output from this data set, and how the desired output is computed, and perhaps someone can generate code to produce the desired output.
data redo_t1;
input ID discwt 3.1 cat_flag race;
counter=1;
datalines;
01 0.2 1 1
02 0.4 1 2
03 0.5 1 1
04 0.4 1 2
05 0.4 1 1
06 0.1 3 2
07 1.2 3 1
08 0.4 3 2
09 1.0 3 1
10 0.4 3 2
;
run;
title 'with weights';
proc tabulate data = work.redo_t1;
title 'Table 1a';
class cat_flag race ;
var counter;
weight discwt;
table race, (cat_flag)*counter*(sum colpctn);
run;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.