Publicado el :
Gestión de Datos CREATION_INTERNE

Generación de Conjuntos de Datos de Prueba (JES)

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script crea una serie de tablas en la biblioteca 'JES' para necesidades de prueba o demostración. Utiliza diferentes métodos: entrada directa (DATALINES) para los contactos, bucles aritméticos para distribuciones estadísticas (Poisson), y generación aleatoria (RANUNI, RANPOI) para simular datos operativos (unidades, fallos, tasas). También incluye transformaciones posteriores con la función LAG para simular dependencias entre filas y un procedimiento de ordenamiento.
Análisis de datos

Type : CREATION_INTERNE


Todos los datos se generan dentro del script a través de DATALINES, bucles de generación o funciones aleatorias (RANUNI, RANPOI).

1 Bloque de código
DATA STEP Data
Explicación :
Creación de la tabla JES.Contacts con datos estáticos proporcionados vía DATALINES.
¡Copiado!
1DATA JES.Contacts;
2 INPUT Name $15. City $10. State $5. Number $15.;
3 DATALINES;
4John X. Doe Lodi nj 201-555-O123
5Mary Murphy San Jose CA 408.555.678
6;
7RUN;
2 Bloque de código
DATA STEP Data
Explicación :
Creación de la tabla JES.TimeStamp que contiene cadenas de caracteres que representan fechas/horas.
¡Copiado!
1DATA JES.TimeStamp;
2 Time = "Tue Apr 03 08:25:00 MST 2004"; OUTPUT;
3 Time = "Tue Mar 26 17:52:31 MST 2004"; OUTPUT;
4 Time = "Tue Jun 03 08:25:00 MDT 2004"; OUTPUT;
5RUN;
3 Bloque de código
DATA STEP Data
Explicación :
Generación de datos estadísticos (Distribución de Poisson) utilizando las funciones CDF y PDF en un bucle.
¡Copiado!
1DATA JES.Poisson;
2 DO K = 0 TO 5;
3 F = CDF('POISSON', K, 5);
4 P = PDF('POISSON', K, 5);
5 OUTPUT;
6 END;
7RUN;
4 Bloque de código
DATA STEP Data
Explicación :
Simulación de datos de unidades (JES.Units) con números de serie y fechas de instalación aleatorios vía RANUNI.
¡Copiado!
1DATA JES.Units; FORMAT SN $4. Install MMDDYY10.;
2 SEED=12345;
3 DO I=1 TO 10;
4 CALL RANUNI(SEED, X); CALL RANUNI(SEED, Y); CALL RANUNI(SEED, Z);
5 SN=put(FLOOR(99*X), Z4.0);
6 Install = '01JUN2006'd + ROUND(21*Y);
7 Loc ="CA"; IF Z<.45 THEN Loc="NY";
8 OUTPUT;
9 END;
10 DROP i X Y Z SEED;
11RUN;
5 Bloque de código
DATA STEP Data
Explicación :
Modificación de JES.Units para introducir duplicados o valores desfasados utilizando la función LAG3 en el número de serie.
¡Copiado!
1DATA JES.Units; SET JES.Units;
2 L=LAG3(SN);
3 IF _N_ in (4,6,8) THEN SN=L;
4 DROP L;
5RUN;
6 Bloque de código
DATA STEP Data
¡Copiado!
1DATA JES.Fails; FORMAT SN $4. Fail MMDDYY10. Loc $6.;
2 SEED=12345;
3 DO I=1 TO 10;
4 CALL RANUNI(SEED, X); CALL RANUNI(SEED, Y); CALL RANUNI(SEED, Z);
5 SN=put(FLOOR(99*X), Z4.0);
6 Fail = '01JUL2006'd + FLOOR(90*Y);
7 Loc ="Top"; IF Z<.45 THEN Loc="Bottom";
8 OUTPUT;
9 END;
10 DROP i X Y Z SEED;
11RUN;
7 Bloque de código
DATA STEP Data
Explicación :
Filtrado y modificación de JES.Fails: eliminación de algunas filas (4, 8, 10) y modificación de la fila 5 vía LAG4.
¡Copiado!
1DATA JES.Fails; SET JES.Fails; L=Lag4(SN);
2 IF _N_=5 THEN SN=L;
3 IF _N_ NE 4; IF _N_ NE 8; IF _N_ NE 10;
4 DROP L;
5RUN;
8 Bloque de código
PROC SORT
Explicación :
Ordenamiento de la tabla JES.Fails por fecha de fallo.
¡Copiado!
1PROC SORT DATA=JES.Fails; BY Fail; RUN;
9 Bloque de código
DATA STEP Data
Explicación :
Generación de la tabla JES.Rates simulando tasas de fallo por proveedor y región, utilizando RANPOI (ley de Poisson).
¡Copiado!
1DATA JES.Rates;
2 FORMAT Vendor $15. GEO $4. QTR $2. Rate 8.4 Test 8.0; SEED=12345;
3 Vendor = "ChiTronix"; GEO = "APAC"; Test = 5000;
4 DO i=1 TO 4; QTR="Q"||PUT(i, 1.0); Fail=RANPOI(SEED, .05*Test); OUTPUT; END;
5 Vendor = "Duality"; GEO = "EMEA"; Test = 1000; Fail = 7;
6 DO i=2 TO 4; QTR="Q"||PUT(i, 1.0); Fail=RANPOI(SEED, .02*Test); OUTPUT; END;
7 Vendor = "Empirical"; GEO="AMER"; Test = 7000; Fail = 100;
8 DO i=1 TO 3; QTR="Q"||PUT(i, 1.0); Fail=RANPOI(SEED, .01*Test); OUTPUT; END;
9RUN;
10 Bloque de código
DATA STEP Data
Explicación :
Cálculo final de la tasa de fallo (Rate) en la tabla JES.Rates.
¡Copiado!
1DATA JES.Rates; SET JES.Rates; FORMAT Rate percent8.2;
2 IF Test>0 THEN Rate=Fail/Test;
3 drop SEED i;
4RUN;
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.