number - Formato personalizado para SAS
sas format number (1)
Hola, estoy interesado en crear un par de formatos personalizados ligeramente complejos para los datos que produzco en SAS. Necesito que sea del tipo numérico.
FORMATO 1
0="-"
>0="<number>%"
<0="<number>%"
es decir
0 >>>>>>> -
.74 >>>>> 74%
-.65>>>>> -65%
FORMATO 2
0="-"
>0="$<number(with commas)>"
<0="$(<number(with commas)>"
es decir
0>>>>>>-
1467>>>>$1,467
-39087>>$(39,087)
He creado formatos personalizados simples usando código como este
proc format;
picture test
0=''-'';
run;
Pero no estoy seguro de cómo escribir la sintaxis para agregar los signos $
y signos (
)
.
Gracias.
El formato de porcentaje es bastante sencillo. El dólar es un poco más complicado ya que tienes que mirar tus anchos.
Básicamente, necesitas usar el prefix
para obtener cualquier cosa en el frente (dólar, paren, signo menos) y simplemente poner todo lo que quieras al final en realidad al final. ''0'' significa un dígito que a veces se imprime, ''9'' significa dígito que siempre se imprime.
mult
para hacer el .13 -> 13%.
Y, por dólar, puede hacer uso del formato dollar
. También es posible que pueda usar el formato NEGPAREN
en el lado negativo, pero no puede combinar eso con el signo de dólar ...
proc format;
picture pctfmt
low - <0= ''000%'' (mult=100 prefix=''-'')
0 = ''-''
0<-high = ''000%'' (mult=100);
picture dollfmt
low - <0 = ''000,000,000.00)'' (prefix=''$('')
0 = ''-''
0 <- high = [dollar16.2]
;
run;
data _null_;
input x;
put x= pctfmt.;
datalines;
-.15
-.05
0
.05
.15
;;;;
run;
data _null_;
input x;
put x= dollfmt12.2;
datalines;
-5.93
-13432554
0
12345324
5.98
;;;;
run;