是否有一种格式可以隐藏SAS中数字的负号?

时间:2017-04-13 08:57:50

标签: sas format sas-gtl

我需要将负数显示为正数(只是隐藏负号)

为此,我目前正在使用此格式

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)上的倒条。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分: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

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