sessionProp addFormat

Gestión de Códigos de Error y Valores Faltantes con Formatos

Scénario de test & Cas d'usage

Contexto empresarial

Un equipo de calidad de datos analiza datos de sensores de maquinaria industrial. Los datos contienen códigos de estado, incluyendo errores específicos, valores normales y datos faltantes (missing). Se necesita un formato que etiquete correctamente cada caso, incluyendo un manejo específico para valores faltantes y códigos imprevistos.
Sobre el conjunto : sessionProp

Configuración de las propiedades de la sesión.

Descubrir todas las acciones de sessionProp
Preparación de datos

Crea una tabla de estados de sensores que incluye valores normales, un código de error, un valor faltante de SAS (.) y un código inesperado.

¡Copiado!
1DATA casuser.SENSOR_STATUS;
2 INFILE DATALINES;
3 INPUT SensorID $ StatusCode;
4 DATALINES;
5S101 10
6S102 20
7S103 -99
8S104 .
9S105 50
10;
11RUN;

Étapes de réalisation

1
Crear una biblioteca de formatos y un formato que maneje rangos, valores específicos, faltantes y otros valores.
¡Copiado!
1PROC CAS;
2 sessionProp.addFmtLib fmtLibName='FMTLIB_DQ';
3 sessionProp.addFormat fmtLibName='FMTLIB_DQ' fmtName='StatusFmt' replace=true
4 ranges={'10-30=Normal', '-99=Error Grave', '.=No Registrado', 'other=Código Desconocido'};
5RUN;
2
Intentar añadir el mismo formato con 'replace=false' para provocar un error esperado y validar la lógica de no reemplazo.
¡Copiado!
1PROC CAS;
2 sessionProp.addFormat fmtLibName='FMTLIB_DQ' fmtName='StatusFmt' replace=false
3 ranges={'10-30=Normal', '-99=Error Grave', '.=No Registrado', 'other=Código Desconocido'};
4RUN;
3
Aplicar el formato a la tabla de sensores y visualizar los resultados.
¡Copiado!
1PROC CAS;
2 TABLE.alterTable TABLE={caslib='casuser', name='SENSOR_STATUS'} columns={{name='StatusCode', FORMAT='StatusFmt'}};
3 TABLE.fetch TABLE={caslib='casuser', name='SENSOR_STATUS'};
4RUN;

Resultado esperado


La tabla final debe mostrar 'Normal' para los códigos 10 y 20, 'Error Grave' para -99, 'No Registrado' para el valor faltante, y 'Código Desconocido' para el código 50. Además, el log de SAS debe registrar un error en el paso 2, confirmando que la opción 'replace=false' impidió sobrescribir el formato existente.