用SAS做研究的过程中,常常需要保留一定的小数点个数,有的时候保留2位到3位就可以了,有的时候需要精确的数据,则需要保留十几位。下面提供一种最简单的方法。
我们希望将SAS求出的方差协方差矩阵,保留2位小数。数据集位SASUSER.SHIYAN。共有24个变量x。
Proc corr data=sasuser.shiyan cov outs=jieguo;
var x1-x24;
run;
proc print data=jieguo;
format x1-x24 12.2 ; /*12表示列宽,2表示保留的小数点个数,注意,小数点个数不能比列宽还大*/
run;
如果想保留10位,把12.2 改为12.10就可以了。其他的reg过程或model过程,方法相同:先指定变量,再在后面定义格式,如:estimate 9.3 tvalue 13.10等。
补充1:可能我们用这个方差协方差结果的目的是直接粘贴到LISREL结构方程软件中,来编程的。这里补充一下如何将上述结果输出到外部文件中。比如我们想把这个结果输入到我们G盘的txt文件,采用传输系统ODS方法如下:
ods listing file='g:/jieguo.txt';
proc print data=jieguo;
run;
补充2:有时,我们常常想得到回归参数的方差协方差矩阵,例如,大样本条件下WALD约束检验统计量就需要这个矩阵;这个过程直接从REG选项调用即可:
proc reg data=sasuser.aa covout outest=jieguo;
model y=x/covb;
run;
保留小数点的方法同上。 补充3:做研究的过程中,往往遇见几十个变量,我们希望方差协方差矩阵能展现在一张页面中,而不是分开的页面,我们只需要制定输出格式即可,方法是在PROC步前添加命令:options linesize=256;/*最大长度是256*/。
参考资料:《SAS编程技术教程》,朱世武。