Ejemplos (mandato DO IF)

Ejemplo de condición única simple

DO IF (YearHired LT 87).
RECODE Ethnicity(1=5)(2=4)(4=2)(5=1).
END IF.
  • El mandato RECODE recodifica Etnicidad para las personas contratadas antes de 1987 (YearHired es inferior a 87). La variable Etnicidad no se recodifica para las personas contratadas en 1987 o posterior.
  • El mandato RECODE se omite para cualquier caso con un valor perdido para YearHired.

Ejecución condicional basada en una expresión lógica

DATA LIST      FREE / X(F1).
NUMERIC        #QINIT.
DO IF          NOT #QINIT.
+  PRINT EJECT.
+  COMPUTE        #QINIT = 1.
END IF.
PRINT          / X.
 
BEGIN DATA
1 2 3 4 5
END DATA.
EXECUTE.
  • Este ejemplo muestra cómo ejecutar un mandato sólo una vez.
  • El mandato NUMERIC crea la variable reutilizable #QINIT, que se inicializa en 0.
  • El operador lógico NOT en DO IF invierte el resultado de una expresión lógica. En este ejemplo, la expresión lógica es una variable numérica que toma sólo 0 (falso) o 1 (verdadero) como sus valores. El mandato PRINT EJECT sólo se ejecuta una vez, cuando el valor de la variable reutilizable #QINIT es igual a 0. Después de que el mandato COMPUTE establezca #QINIT en 1, la estructura DO IF se omite para todos los casos posteriores. Se utiliza una variable reutilizable porque se inicializa en 0 y no se reinicializa después de cada caso.