numericos number lengthn formatos sas format

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;