2010-08-28 19 views
5

Ho trovato questo paper su SAS che comprende (nella prima pagina e alcune altre parti) la seguente riga di codice:sintassi .z in SAS

if trt1pn > .z then... 

mi chiedevo quale sia lo scopo di esso può essere. Non avevo mai visto l'espressione ".z" prima. Io pensavo (e alcuni miei colleghi pensavano lo stesso) era un errore di battitura. Ma puoi fare

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

e ottieni variabile a uguale a "Z" e variabile b uguale a "B".

Dove si discute dei manuali SAS? Cosa può significare? Perché viene usato nella carta in questo modo?

risposta

5

SAS ha 28 diversi valori mancanti (., ._, .A-.Z) con '.' essere il default questi speciali valori mancanti possono essere impostati in base al motivo per cui il valore è mancante. Il punto dati non è applicabile, quindi è possibile utilizzare ".N".

Inoltre, questi valori mancanti possono essere formattati facilmente tramite formati personalizzati (formato proc).

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

e ulteriori informazioni da SAS: http://support.sas.com/documentation/cdl/en/lrcon/62955/HTML/default/viewer.htm#/documentation/cdl/en/lrcon/62955/HTML /default/a000992455.htm –

4

Per una variabile numerica, ci sono 28 diversi valori mancanti (._, ., .A, .B, ..., .Z). Sono "più piccoli" di tutti i numeri. Tra questi, il più piccolo è il punto-underscore (._) e il più grande il punto-Z (.Z). Così, la linea:

if trt1pn > .Z then ... 

può essere riscritta utilizzando la funzione missing():

if not missing(trp1pn) then ... 

che è un po 'più chiaro.