2017-04-13 50 views
0

我需要为阳性(即只是隐藏负号)显示负数有没有一种格式可以隐藏SAS中的负号?

对于我目前使用这种格式

proc format; 
    * 9 forces leading zeros, 0 doesn't; 
    * numbers are inversed so high = low; 
    picture posval 
     low - high='000009.00' 
     ; 
    run; 

但问题是,在GTL情节我将在轴上有2个十进制值。 我无法将轴刻度值的格式更改为无小数。

由于我的数字范围从-6到0,没有一个完全是整数,所以我想到了这样的事情,但它完全不雅观,并且比解决方案更具破坏性。

proc format; 
    * 9 forces leading zeros, 0 doesn't; 
    * numbers are inversed so high = low; 
    picture posval 
     low -< -7 = '000009.00' 
     -7 -< -7 = '0009' 
     -7 -< -6 = '0009.00' 
     -6 -< -6 = '0009' 
     -6 -< -5 = '0009.00' 
     -5 -< -5 = '0009' 
     -5 -< -4 = '0009.00' 
     -4 -< -4 = '0009' 
     -4 -< -3 = '0009.00' 
     -3 -< -3 = '0009' 
     -3 -< -2 = '0009.00' 
     -2 -< -2 = '0009' 
     -2 -< -1 = '0009.00' 
     -1 -< -1 = '0009' 
     -1 -< -0 = '0009.00' 
     0 -< 0 = '000009' 
     0-high = '000009' 
     ; 
    run; 

有没有更好的方法?

编辑:
更多信息:我故意将我的值反转为负值,将它们作为barchartparm上的反转条(sas GTL)绘制。

回答

0

你为什么不使用ABS(绝对值)功能:

data abc; 
input a; 
cards; 
-1 
-2 
-2.5 
-3 
2 
3 
3.05 
4 
; 
run; 


data abc1; 
set abc; 
a1 = abs(a); 
run; 

输出:

a  | a1 
-1  | 1 
-2  | 2 
-2.5 | 2.5 
-3  | 3 
2  | 2 
3  | 3 
3.05 | 3.05 
4  | 4 

此外,共用输入输出数据集,如果您有任何不同的要求。

+0

因为修改了数据。 –

+0

@stallingone在绘图之前创建视图有什么想法? – user667489

+0

@ user667489我看不出这会有什么帮助,数据在绘图之前就已经准备好了。 –

2

为什么不创建用户定义的格式来调用ABS()函数?

proc format ; 
value abs low-high = [abs()] ; 
run; 
+0

只适用于数据集视图,不适用于GTL图:每个数字都带负号出现。 –

+0

您需要发布一个示例程序,用于生成格式不适用的情节。 – Tom

相关问题