2014-12-04 10 views
5

Ho set di dati in cui a volte ho bisogno di selezionare le osservazioni in cui manca nessuna delle variabili nell'elenco.SAS - Che cosa è un buon modo per controllare se una delle variabili in un elenco è mancante

io devo farlo.

Where E1 NE . and E2 NE . and E3 NE . 

o posso farlo po 'più facile in questo modo:

Where E1+E2+E3 NE . 

Ma esiste un modo in SAS per fare qualcosa di simile:

Where not missing(E1 - E3) 

Non funziona se lo faccio

where sum(of E1-E3) NE . 

Perché questo è equivalente a

Where E1 NE . or E2 NE . or E3 NE . 

ma ho bisogno "e" al posto di "o".


Potrei anche un ciclo su tali variabili in un insieme di dati e costruire una variabile per la selezione come:

array E E1-E3; 
misind = 0; 
do i=1 to dim(E); 
    if E(i) = . then misind = 1; 
end; 

Ma non è così semplice sia!

risposta

9

Penso che si possa utilizzare la funzione nmiss o cmiss per verificare il numero esatto di colonne con valori mancanti.

per colonne numeriche. Nessuna colonna in e1-e3 manca.

if nmiss(of e1-e3) = 0 

per colonne miste numerico/char. Nessuna colonna in e1-e3 manca.

if cmiss(of e1-e3) = 0 
+0

Ecco come farei anche io. – Joe

+0

Le funzioni nmiss o cmiss non funzionano nella clausola Where per me. Posso solo usarli in step di dati come x = nmiss (di e1-e3). Sto facendo qualcosa di sbagliato? – Pekka

+0

@Pekka mi dispiace, mio ​​errore. Qui devi usare 'if'. –

Problemi correlati