sessionProp

addFormat

L'essentiel
En resumen
La calidad de un informe analítico depende en gran medida de cómo se interpretan los datos subyacentes. La operación addFormat es la herramienta clave en SAS Viya para dotar de significado semántico a sus variables, permitiendo asociar etiquetas descriptivas a valores numéricos o códigos internos. Esta capacidad de personalización es esencial para limpiar y preparar los datos antes de su consumo en herramientas visuales. A continuación, presentamos una sección de dudas frecuentes y soluciones técnicas diseñada para ayudarle a configurar y aplicar estas reglas de visualización con precisión en sus tablas CAS.

Descripción

La acción addFormat en SAS Viya se utiliza para añadir un nuevo formato a una biblioteca de formatos existente dentro de una sesión de CAS. Esto permite a los usuarios definir sus propios formatos personalizados para la visualización de datos, que pueden ser numéricos o de caracteres. Estos formatos se pueden aplicar a las columnas de las tablas en memoria para mejorar la legibilidad y la presentación de los resultados del análisis.

sessionProp.addFormat { dataType="string", defaultL=64-bit-integer, fill="string", fmtLibName="string", fmtName="string", fmtType="string", fuzz=double, locale="string", maxL=64-bit-integer, minL=64-bit-integer, mult=double, multiLabel=boolean, noedit="string", notSorted=boolean, prefix="string", ranges={"string-1" <, "string-2", ...>}, replace=boolean };
Parámetros
ParámetroDescripción
dataType Indica si el valor es DATE, TIME o DATETIME.
defaultL Especifica la longitud predeterminada del formato.
fill Indica el carácter de relleno para el formato PICTURE.
fmtLibName Especifica un nombre para la biblioteca de formatos.
fmtName Especifica un nombre para el formato.
fmtType Indica el tipo de formato: PICTURE, INVALUE o VALUE.
fuzz Especifica un factor de aproximación para hacer coincidir valores con un rango.
locale Especifica la configuración regional a utilizar en el prefijo de configuración regional del nombre del formato.
maxL Especifica una longitud máxima para el formato, en bytes.
minL Especifica una longitud mínima para el formato, en bytes.
mult Indica el multiplicador para el formato PICTURE en lugar de calcularlo basándose en los puntos decimales.
multiLabel Cuando se establece en True, se pueden especificar múltiples etiquetas para el valor interno.
noedit Indica una etiqueta que no es de tipo PICTURE para el formato PICTURE.
notSorted Cuando se establece en True, los valores o rangos se almacenan en el orden en que se definen.
prefix Indica los caracteres de prefijo para el formato PICTURE.
ranges Especifica una lista de pares valor=etiqueta o rango=etiqueta. Los rangos se especifican como min-max=etiqueta.
replace Cuando se establece en True, un formato existente con el mismo nombre se reemplaza por este formato.
Creación de un conjunto de datos de ejemplo

Este bloque de código crea una tabla en memoria en CAS llamada 'ventas_productos'. La tabla contiene dos columnas: 'id_producto' y 'cantidad_vendida'. Estos datos servirán de base para aplicar los formatos personalizados definidos en los ejemplos.

¡Copiado!
1DATA casuser.ventas_productos;
2 INFILE DATALINES;
3 INPUT id_producto cantidad_vendida;
4 DATALINES;
51 10
62 25
73 55
84 120
9;
10RUN;

Ejemplos

Este ejemplo primero crea una biblioteca de formatos llamada 'mi_biblioteca_formatos'. Luego, añade un formato numérico llamado 'cantidadfmt' a esta biblioteca. El formato clasifica las cantidades vendidas en tres categorías: 'Bajo', 'Medio' y 'Alto'.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 sessionProp.addFmtLib fmtLibName='mi_biblioteca_formatos';
3 sessionProp.addFormat fmtLibName='mi_biblioteca_formatos' fmtName='cantidadfmt' ranges={'1-50=Bajo', '51-100=Medio', '101-high=Alto'};
4RUN;

Este ejemplo crea una biblioteca de formatos y luego añade un formato de caracteres '$productofmt' para asignar nombres de productos a sus ID. La opción 'replace=true' asegura que si el formato ya existe, será sobrescrito. Finalmente, utiliza la acción 'alterTable' del conjunto de acciones 'table' para aplicar el nuevo formato a la columna 'id_producto' de la tabla 'ventas_productos' y muestra los resultados formateados usando 'fetch'.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 sessionProp.addFmtLib fmtLibName='mi_biblioteca_formatos_char';
3 sessionProp.addFormat fmtLibName='mi_biblioteca_formatos_char' fmtName='$productofmt' replace=true ranges={'1=Laptop', '2=Smartphone', '3=Tableta', '4=Monitor'};
4 TABLE.alterTable TABLE={caslib='casuser', name='ventas_productos'} columns={{name='id_producto', FORMAT='$productofmt'}};
5 TABLE.fetch TABLE={caslib='casuser', name='ventas_productos'};
6RUN;

FAQ

¿Cuál es el propósito de la acción addFormat?
¿Para qué sirve el parámetro `fmtLibName`?
¿Qué restricciones tiene el parámetro `fmtName`?
¿Cómo se definen los rangos de valores para un formato?
¿Qué sucede si intento agregar un formato que ya existe?
¿Qué es el parámetro `fuzz`?
¿Es posible crear formatos específicos para una región o idioma?
¿Qué permite el parámetro `multiLabel`?
¿Qué tipos de formato se pueden crear con `fmtType`?

Escenarios asociados

Caso de uso
Segmentación de Clientes por Nivel de Gasto y Región Geográfica

Un departamento de marketing desea categorizar a sus clientes según su gasto total y región geográfica para lanzar campañas dirigidas. Necesitan crear formatos personalizados pa...

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

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...

Caso de uso
Clasificación de Transacciones con Formatos de Múltiples Etiquetas y Regionales

Una institución financiera internacional necesita clasificar transacciones. Algunas transacciones pueden tener múltiples atributos (ej. 'Alto Valor' y 'Transfronteriza'). Tambié...