Publicado el :
Flujo de Control CREATION_INTERNE

Ejemplo: Sentencia SELECT WHEN

Este código también está disponible en: Deutsch English
La sentencia SELECT WHEN permite procesar condicionalmente una o varias sentencias en un grupo de sentencias basado en el valor de una única variable categórica. Un grupo de sentencias entre las sentencias SELECT y END se denomina grupo SELECT. Los grupos SELECT contienen sentencias WHEN que identifican las sentencias SAS© ejecutadas cuando una condición particular es verdadera. La sentencia END y al menos una sentencia WHEN son requeridas al especificar la sentencia SELECT. El uso de un grupo SELECT es más eficiente que el uso de una serie de sentencias IF-THEN cuando se tiene una larga serie de condiciones mutuamente excluyentes. Un gran número de condiciones hace que un grupo SELECT sea más eficiente que las sentencias IF-THEN/ELSE, ya que se reduce el tiempo de CPU. Los grupos SELECT también facilitan la lectura y depuración del programa. Una sentencia OTHERWISE opcional especifica una instrucción a ejecutar si ninguna condición WHEN se cumple. Por ejemplo, si sus datos contienen datos faltantes o no válidos. En las instrucciones nulas utilizadas en una sentencia OTHERWISE, la sentencia SELECT WHEN evita que SAS© emita un mensaje de error.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos generados (datalines) o SASHELP.

1 Bloque de código
DATA STEP
Explicación :
Este código SAS utiliza un DATA step para crear un nuevo conjunto de datos 'shoes' a partir de 'sashelp.shoes'. Filtra las observaciones donde la región es 'Canada', 'Pacific' o 'Asia'. Luego, utiliza una sentencia SELECT WHEN para aplicar diferentes reducciones de venta según la región: 10% para 'Canada', 9% para 'Pacific' y 7% para 'Asia'. Finalmente, se usa una PROC PRINT para mostrar el contenido del conjunto de datos modificado.
¡Copiado!
1DATA shoes;
2 SET sashelp.shoes(where=(Region='Canada' or Region='Pacific' or Region='Asia'));
3 keep Region Sales Product;
4 select(Region);
5 when('Canada') sales = sales * .10;
6 when('Pacific') sales = sales * .09;
7 when('Asia') sales = sales * .07;
8 END;
9RUN;
10PROC PRINT DATA=shoes; RUN;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.