Publicado el :
Macro MIXTE

Macro AHGsetvarLen: Modificación de la longitud de una variable

Este código también está disponible en: Deutsch English Français
En espera de validación
Esta macro cambia la longitud de una variable especificada ('var') en una tabla dada ('dsn'). Funciona creando una tabla temporal vacía que contiene la variable con la nueva longitud ('len'), y luego fusiona esta estructura con la tabla original. La técnica de 'merge' sin cláusula 'by' (fusión implícita 1 a 1 utilizada aquí para los atributos) permite imponer la nueva longitud. Finalmente, llama a una macro externa (%AHGordvar) para restaurar el orden de las columnas. Nota: Este script depende de varias otras macros no proporcionadas (%AHGblank, %AHGbasename, %AHGgettempname, %AHGvarlist, %AHGordvar).
Análisis de datos

Type : MIXTE


La macro opera sobre una tabla SAS pasada como parámetro (&dsn). No se cargan datos específicos de forma estática.

1 Bloque de código
DATA STEP Data
Explicación :
Definición de la macro. 1) Determina el nombre de salida. 2) Recupera la lista de variables actuales. 3) Crea una tabla vacía forzando la nueva longitud de la variable objetivo. 4) Fusiona la tabla vacía con la tabla de origen (la longitud de la primera tabla citada en el MERGE prevalece). 5) Reordena las variables.
¡Copiado!
1%macro AHGsetvarLen(dsn,var,len,out=);
2 %IF %AHGblank(&out) %THEN %let out=%AHGbasename(&dsn);
3 %local empty varlist;
4 %AHGgettempname(empty);
5 %AHGvarlist(&dsn,Into=varlist,dlm=%str( ),global=0);
6 DATA
7 LENGTH &var &len;
8 RUN;
9 DATA &out;
10 MERGE &empty &dsn;
11 RUN;
12 %AHGordvar(&out,&varlist,keepall=0);
13%mend;
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.