Pregunta

¿Existe un equivalente de la función Oracle NVL en SAS?

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

where myVar > -2;

no va a incluir ninguna fila que tenga myVar =.

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

where myVar > -2 or missing( myVar )

Me gustaría poder hacer algo como:

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

¿Hay algo como esto en SAS?

¿Fue útil?

Solución

La función de fusión debería hacer el trabajo.

where coalesce(myVar,0) > -2

No estoy seguro de si la función estuvo disponible en SAS 9, por lo que si tiene una versión SAS realmente antigua, esto podría no funcionar.

Otros consejos

Usar la función de fusión es la forma correcta de hacerlo.

Pero si tiene una versión anterior de SAS donde no se implementa la fusión, puede usar este truco:

where sum(myVar,0) > -2

Si utiliza la función de suma en SAS para agregar, cualquier número que no falte en la suma obligará a que el resultado no falte.

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

Una cosa que puedes hacer es me gusta matriz varlistname var1 var2 var3 varn; if array < > ;. luego salida;

Producirá conjuntos de datos que tengan valores no faltantes

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top