控制SAS proc中的小数位数

时间:2015-02-01 19:26:22

标签: sas decimal proc

我试图通过指定maxdec = 10来报告我的proc意味着输出10位小数。但是,SAS不会报告超过7个小数位。 这是我得到的警告: 警告:NDec值不合适,将使用BEST格式。 我很感激任何建议。

2 个答案:

答案 0 :(得分:3)

如果您查看文档,它会声明MEANS将根据MAXDEC的值打印0-8位小数。如果您需要更多,则需要保存结果并自行打印。

试试这个:

data test;
format x 12.11;
do i=1 to 1000;
   x = rannor(0);
   output;
end;
drop i;
run;

proc means data=test noprint;
var x;
output out=means_out mean=mean std=std;
run;

proc print data=means_out noobs;
var mean std;
format mean std 12.11;
run;

答案 1 :(得分:2)

如前所述,maxdec=适用于将小数位数限制在8以下。Proc means不会让您做太多改变摘要统计信息的格式。我建议使用proc tabulate

如果您的proc means看起来像:

proc means data=yourdata;
  var yourvariable;
run;

比使用类似的东西:

proc tabulate data=yourdata;
    var yourvariable;
    table yourvariable*
      (n
      mean*format=15.10
      stddev*format=15.10
      min*format=15.10
      max*format=15.10);
run;