Publicado el :
ETL CREATION_INTERNE

Manipulación de datos con funciones LAG

Este código también está disponible en: Deutsch English Français
En espera de validación
Este programa comienza creando un conjunto de datos 't1' con valores codificados. Luego, clasifica estos datos por la variable 'x'. Un paso Data Step siguiente ('t2') utiliza la función LAG para crear una nueva variable 'z' que contiene el valor anterior de 'y'. Finalmente, un último paso ('t3') aplica una lógica condicional compleja utilizando comparaciones entre el valor actual y los valores retrasados para modificar las variables.
Análisis de datos

Type : CREATION_INTERNE


Los datos se crean directamente en el código a través de la instrucción CARDS en el paso data t1.

1 Bloque de código
DATA STEP Data
Explicación :
Creación de la tabla 't1' con dos variables numéricas x e y, alimentada por datos internos (CARDS).
¡Copiado!
1DATA t1;
2 INPUT x y;
3 CARDS;
4 1 5
52 6
63 6
77 9
88 10
911 12
10;
11RUN;
2 Bloque de código
PROC SORT
Explicación :
Clasificación de la tabla 't1' en orden ascendente por la variable 'x'.
¡Copiado!
1PROC SORT DATA=t1; BY x; RUN;
3 Bloque de código
DATA STEP Data
Explicación :
Creación de la tabla 't2' a partir de 't1'. La función LAG(y) se utiliza para recuperar el valor de 'y' de la observación anterior y almacenarlo en 'z'.
¡Copiado!
1DATA t2;
2 SET t1 END=b;
3 z=lag(y);
4 /*if x>z or b;
5 proc sort; by decending x;
6 */
7RUN;
4 Bloque de código
PROC PRINT
Explicación :
Visualización del contenido de la última tabla creada (t2) en la salida estándar.
¡Copiado!
1PROC PRINT;RUN;
5 Bloque de código
DATA STEP Data
Explicación :
Creación de la tabla 't3' a partir de 't2'. Aplica modificaciones condicionales: si x es menor que z, z toma el valor de y. Luego, y se actualiza con el máximo entre su valor actual y el valor anterior de z.
¡Copiado!
1DATA t3;
2 SET t2;
3 IF xTHEN z=y;
4 y=max(y,lag(z));
5 *if y^=z;
6RUN;
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.