Publicado el :
Control de Flujo CREATION_INTERNE

Ejemplo: Instrucción SELECT WHEN

Este código también está disponible en: Deutsch English Français
La instrucción SELECT WHEN le permite procesar condicionalmente una o varias instrucciones en un grupo de instrucciones basándose en el valor de una sola variable categórica. Un grupo de instrucciones entre las instrucciones SELECT y END se denomina grupo SELECT. Los grupos SELECT contienen instrucciones WHEN que identifican las instrucciones SAS© ejecutadas cuando una condición particular es verdadera. La instrucción END y al menos una instrucción WHEN son obligatorias al especificar la instrucción SELECT. El uso de un grupo SELECT es más eficiente que usar una serie de instrucciones IF-THEN cuando 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 instrucciones 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 instrucción OTHERWISE opcional especifica una instrucción a ejecutar si ninguna condición WHEN se cumple. Por ejemplo, si sus datos contienen datos faltantes o inválidos. En las instrucciones nulas utilizadas en una instrucción OTHERWISE, la instrucción SELECT WHEN evita que SAS© emita un mensaje de error.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos usan datos de la librería SASHELP (sashelp.shoes).

1 Bloque de código
DATA STEP
Explicación :
Este ejemplo crea un nuevo conjunto de datos 'shoes' a partir de `sashelp.shoes`. Filtra los datos para incluir solo las regiones 'Canada', 'Pacific' y 'Asia'. Luego, utiliza la instrucción SELECT WHEN para aplicar diferentes descuentos a las ventas según la región: 10% para Canadá, 9% para el Pacífico y 7% para Asia. Finalmente, `PROC PRINT` muestra 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.
Información de copyright : Copyright © SAS Institute Inc. All Rights Reserved