SAS中的舍入和格式化

时间:2014-07-23 13:39:05

标签: formatting sas

我通过put函数将数值变量(p值)转换为字符变量。我想保留pvaluew.d格式的'< .0001'值小于.0001。我使用下面的代码:

newvar=put(round(oldvar,.0001),pvalue6.4);

我遇到了这个问题。当我使用它时,newvar最终为1或<.0001。 当我在代码的其他部分尝试它时,我无法重现此错误,这使我相信我做的其他事情就是问题。

使用一个例子,我在变量上使用了上面的变换和下面的变换,其中有一些随机的p值:

newvar2=put(oldvar,pvalue6.4);

结果完全相同。如果总是如此,那两行代码会产生相同的结果,而我之前的错误是由于另一个原因,或者是否会出现不同结果的情况?我可以为put函数使用6.4格式,并手动将任何0.0000更改为&lt; .0001,但我更愿意让SAS为我做。

1 个答案:

答案 0 :(得分:1)

大多数格式在显示时会自动舍入,因此您不需要进行舍入。

data _null_;
 do x=.00004,.00006,.00014,.00016;
   y=round(x,.0001);
   put x= pvalue6.4 y= pvalue6.4;
 end;
run;

这两个流程之间的唯一区别是pvalue格式会将.0005 - .000999中的数字显示为&#39;&lt; .0001&#39;首先舍入将显示那些等于.0001的数字。您的选择对您的项目来说是正确的;我怀疑大多数人更喜欢前者,除非你觉得.0001是你可以正确显示的最远的有效数字。