sábado, 21 de julio de 2018

Declaración IF-THEN / ELSE


Sintaxis
IF expresión THEN declaración ; Declaración
< ELSE ;>


Donde:

expresión: Es cualquier expresión SAS y es un argumento requerido.
declaración: Puede ser cualquier declaración SAS ejecutable o grupo DO.


SAS evalúa la expresión en una instrucción IF-THEN para producir un resultado que es distinto de cero, cero o faltante. Un resultado distinto de cero y sin pérdida causa que la expresión sea verdadera; un resultado de cero o faltante hace que la expresión sea falsa.

Si se cumplen las condiciones que se especifican en la cláusula IF, la instrucción IF-THEN ejecuta una declaración SAS para observaciones que se leen de un conjunto de datos SAS, para registros en un archivo externo o para valores calculados. 

Una instrucción ELSE opcional proporciona una acción alternativa si la cláusula THEN no se ejecuta. La declaración ELSE, si se utiliza, debe seguir inmediatamente la instrucción IF-THEN.

El uso de sentencias IF-THEN sin la instrucción ELSE hace que SAS evalúe todas las sentencias IF-THEN. 



Diferencia entre la instruccion  IF vs Where 



Las personas que trabajamos con el lenguaje SAS muchas veces nos preguntamos que es mas rápido cuando de filtrar datos se trata.  

En SAS Enterprise Guide existen las palabras reservadas  IFWhere. De manera sencilla vamos a explicar como funciona cada una de ellas


WHERE 

Se determinan cuando se compila el paso DATA . A medida que se ejecuta el paso DATA, los datos entrantes solo filtran a aquellos registros que coinciden con la condición WHERE, por lo que solo esos registros se cargan en el vector de datos del programa (PDV). Esto da como resultado menos iteraciones a través del código del paso DATA, pero no brinda la oportunidad de tomar decisiones "dinámicas" sobre qué registros examinar.


IF 
La instrucción IF se evalúa en tiempo de ejecución y opera sobre las variables una vez que ya están en el PDV. Cuando se cumple la condición IF, la observación actual se mantiene para salida eventual. A diferencia de la instrucción WHERE, la instrucción IF puede examinar los valores de las nuevas variables que se definen dentro del paso.