2010-08-28 6 views
5

encontré este paper en SAS que incluye (en la primera página y algunas otras partes) la siguiente línea de código:sintaxis .z en SAS

if trt1pn > .z then... 

Me preguntaba lo que puede ser el objetivo de la misma. Nunca antes había visto la expresión ".z". Pensé (y algunos colegas míos pensaron lo mismo) que era un error tipográfico. Pero puede hacer

data kk; 
    a = .z; 
    b = .b; 
run; 

y obtiene una variable a igual a "Z" y una variable b igual a "B".

¿Dónde en los manuales SAS se discute esto? ¿Qué puede significar? ¿Por qué se usa en el periódico de esa manera?

Respuesta

5

SAS tiene 28 valores diferentes faltantes (., ._, .A-.Z) con '.' siendo el predeterminado. estos valores especiales faltantes se pueden establecer en función del motivo por el que falta el valor. Si el punto de datos no es aplicable, entonces se podría usar '.N'.

Además, estos valores perdidos se pueden formatear a través de formatos personalizados (formato de proc) fácilmente.

Proc format; 
    Value Response 
    1='Yes' 
    0='No' 
    .U='Unsure' 
    .N='Not Applicable' 
    .R='Refused to Answer'; 
Run; 
+0

y aquí hay más información de SAS: http://support.sas.com/documentation/cdl/en/lrcon/62955/HTML/default/viewer.htm#/documentation/cdl/en/lrcon/62955/HTML /default/a000992455.htm –

4

Para una variable numérica, hay 28 valores perdidos diferentes (._, ., .A, .B, ..., .Z). Son "más pequeños" que todos los números. Entre ellos, el más pequeño es el punto subrayado (._) y el más grande es el punto Z (.Z). Por lo tanto, la línea:

if trt1pn > .Z then ... 

puede ser re-escrito usando la función missing():

if not missing(trp1pn) then ... 

que es un poco más claro.