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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.