sessionProp

addFormat

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
dataTypeIndica si el valor es DATE, TIME o DATETIME.
defaultLEspecifica la longitud predeterminada del formato.
fillIndica el carácter de relleno para el formato PICTURE.
fmtLibNameEspecifica un nombre para la biblioteca de formatos.
fmtNameEspecifica un nombre para el formato.
fmtTypeIndica el tipo de formato: PICTURE, INVALUE o VALUE.
fuzzEspecifica un factor de aproximación para hacer coincidir valores con un rango.
localeEspecifica la configuración regional a utilizar en el prefijo de configuración regional del nombre del formato.
maxLEspecifica una longitud máxima para el formato, en bytes.
minLEspecifica una longitud mínima para el formato, en bytes.
multIndica el multiplicador para el formato PICTURE en lugar de calcularlo basándose en los puntos decimales.
multiLabelCuando se establece en True, se pueden especificar múltiples etiquetas para el valor interno.
noeditIndica una etiqueta que no es de tipo PICTURE para el formato PICTURE.
notSortedCuando se establece en True, los valores o rangos se almacenan en el orden en que se definen.
prefixIndica los caracteres de prefijo para el formato PICTURE.
rangesEspecifica una lista de pares valor=etiqueta o rango=etiqueta. Los rangos se especifican como min-max=etiqueta.
replaceCuando 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é...