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;
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.