2009-06-24 32 views
7

¿Hay un equivalente de la función de Oracle NVL en SAS?Tratar los valores faltantes como cero en SAS donde la cláusula

Por ejemplo, si tengo una cláusula where en SAS que dice:

no se va a incluir todas las filas que tienen miVar =.

Si quiero para tratar los valores perdidos como cero, que tengo que decir:

where myVar > -2 or missing(myVar) 

Me gustaría ser capaz de hacer algo como:

where NVL(myVar, 0) > -2 // or some SAS equivalent 

¿Hay algo como esto en SAS?

+1

Tenga en cuenta que es sólo en datos que no son SAS que las filas con miVar =. no será incluido. La razón es que los valores perdidos son NULL, y las comparaciones con NULL siempre se evaluarán como FALSAS. En datos SAS nativos, los valores faltantes se tratan como un número no negativo, que es menor que cero. Entonces "donde myVar> -2;" funcionará realmente con los valores perdidos cuando se opera con datos SAS nativos. –

Respuesta

13

El coalesce function debería hacer el trabajo.

where coalesce(myVar,0) > -2 

no estoy seguro de si llegó a estar disponible la función de SAS 9, por lo que si usted tiene una versión muy viejo SAS esto podría no funcionar.

7

El uso de la función Coalesce es la forma correcta de hacerlo.

Pero si tienes una versión antigua de SAS en las que no se implementa se unen, puede utilizar este truco:

where sum(myVar,0) > -2 

Si utiliza el sum function en SAS para añadir, número de cualquier país que no falta en el la sumatoria obligará al resultado a no desaparecer.

Por lo tanto, al sumar 0 con la función de suma se transformará un valor faltante en 0, y los valores no perdidos permanecerán inalterados.

+1

+1: ¡Es una sugerencia increíble! Ya no admitimos SAS 8 para nuestro producto, así que realmente no me importa si la fusión estuvo disponible entonces o no, pero si lo hiciera, esta sería una solución ingeniosa. – Adnan

-1

Una cosa que se puede hacer es como array varlistname var1 var2 var3 varn; if array <>. luego salida;

Será ouput conjuntos de datos que tienen valores no faltan

Cuestiones relacionadas