Publicado el :
ETL CREATION_INTERNE

Procesamiento de datos y creación de un nuevo conjunto de datos con bucle condicional

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza con la ejecución de un DATA step para crear un conjunto de datos temporal llamado 'b'. Los valores de las variables 'id', 'x1', 'x2' e 'y' se integran directamente en el script utilizando la instrucción CARDS. Así se inicializan siete observaciones.\n\nUn segundo DATA step se implementa a continuación para generar un nuevo conjunto de datos, 'newdata', basado en el conjunto de datos 'b'. En este DATA step, se utiliza un bucle 'DO i=1 TO 3' para cada observación de 'b'. Dentro de este bucle, se crea una variable 'decision' y su valor se determina mediante una instrucción condicional 'IF y=i THEN decision=1; ELSE decision=0;'. Al colocar la instrucción 'OUTPUT' dentro del bucle, cada observación del conjunto de datos 'b' generará tres observaciones distintas en 'newdata', cada una correspondiente a un valor de 'i' (1, 2 o 3) y al valor de 'decision' calculado en consecuencia.\n\nFinalmente, se llama al procedimiento PROC PRINT sin especificar un conjunto de datos, lo que tiene el efecto de mostrar el contenido del conjunto de datos 'newdata' (el último creado) en la salida estándar de SAS©.
Análisis de datos

Type : CREATION_INTERNE


Los datos del conjunto de datos inicial 'b' se crean internamente a través de la instrucción CARDS en un DATA step. El conjunto de datos 'newdata' se deriva luego de 'b'. No se utilizan datos externos ni de la biblioteca SASHELP.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA step es responsable de la creación de un conjunto de datos SAS temporal llamado 'b'. Define cuatro variables ('id', 'x1', 'x2', 'y') y las llena con siete observaciones proporcionadas directamente en el script a través de la instrucción 'CARDS;'. Este método se utiliza comúnmente para crear pequeños conjuntos de datos de prueba o de ejemplo.
¡Copiado!
1DATA b;
2 INPUT id x1 x2 y;
3 CARDS;
4 1 12 35 1
5 2 22 38 2
6 3 25 34 3
7 4 12 56 1
8 5 21 54 2
9 6 20 45 3
10 7 25 34 3
11 ;
12RUN;
2 Bloque de código
DATA STEP Data
Explicación :
Este DATA step crea un nuevo conjunto de datos llamado 'newdata' leyendo las observaciones del conjunto de datos 'b'. Se ejecuta un bucle 'DO i=1 to 3' para cada observación de 'b'. Dentro del bucle, se calcula una variable 'decision': su valor es 1 si el valor de 'y' es igual al índice del bucle 'i', de lo contrario es 0. La instrucción 'OUTPUT' dentro del bucle garantiza que se escriban tres observaciones en 'newdata' por cada observación de 'b', cada una con un valor de 'decision' diferente correspondiente a la iteración del bucle.
¡Copiado!
1DATA newdata;
2 SET b;
3 DO i=1 to 3;
4 IF y=i THEN decision=1;
5 ELSE decision=0;
6 OUTPUT;
7 END;
8RUN;
3 Bloque de código
PROC PRINT
Explicación :
Este bloque ejecuta el procedimiento PROC PRINT. Sin especificar el conjunto de datos ('DATA='), PROC PRINT muestra por defecto el último conjunto de datos creado o modificado en la sesión SAS, que en este caso es 'newdata'. Este procedimiento se utiliza para visualizar rápidamente el contenido de un conjunto de datos.
¡Copiado!
1PROC PRINT;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.