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!
data t1;
input x y;
cards;
1 5
2 6
3 6
7 9
8 10
11 12
;
run;
1
DATA t1;
2
INPUT x y;
3
CARDS;
4
15
5
26
6
36
7
79
8
810
9
1112
10
;
11
RUN;
2 Bloque de código
PROC SORT
Explicación : Clasificación de la tabla 't1' en orden ascendente por la variable 'x'.
¡Copiado!
proc sort data=t1; by x; run;
1
PROC SORTDATA=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!
data t2;
set t1 end=b;
z=lag(y);
/*if x>z or b;
proc sort; by decending x;
*/
run;
1
DATA t2;
2
SET t1 END=b;
3
z=lag(y);
4
/*if x>z or b;
5
proc sort; by decending x;
6
*/
7
RUN;
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!
proc print;run;
1
PROC 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!
data t3;
set t2;
if x<z then z=y;
y=max(y,lag(z));
*if y^=z;
run;
1
DATA t3;
2
SET t2;
3
IF xTHEN z=y;
4
y=max(y,lag(z));
5
*if y^=z;
6
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.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.