I want to limit the decimal places to 2 for the output for STD ERROR of SUM from PROC SURVEYMEANS.
In the following example the Std Error of Sum = 267.928448 but I want it to be 267.93. Thanks
data TEST;
do ID = 1 to 30;
HEIGHT = round(130 + rand('Uniform') * 50, 0.01); /* Heights with 2 decimal places */
WEIGHT = rand('Uniform'); /* Generating random survey weights */
output;
end;
run;
/* Run PROC SURVEYMEANS with weights */
proc surveymeans data=TEST min max sum std mean stderr plots=none;
var HEIGHT;
weight WEIGHT;
run;
Write the results to a SAS data set, then apply format 12.2 (or any other format you would like) to the output data set.
ods select none;
ods output statistics=statistics;
/* Run PROC SURVEYMEANS with weights */
proc surveymeans data=TEST min max sum std mean stderr;
var HEIGHT;
weight WEIGHT;
run;
ods select all;
Write the results to a SAS data set, then apply format 12.2 (or any other format you would like) to the output data set.
ods select none;
ods output statistics=statistics;
/* Run PROC SURVEYMEANS with weights */
proc surveymeans data=TEST min max sum std mean stderr;
var HEIGHT;
weight WEIGHT;
run;
ods select all;
Thanks @PaigeMiller!
It is interesting that the output from ODS output renames Std Error of MEan to StdErr and renames Std Error of Sum to StdDev and I need to format StdDev. But that solves my problem. Thanks
When you do a PROC PRINT here, use the LABEL option
proc print data=statistics label;
format stddev stderr 12.2;
run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.