Macro addvar - División de variables de texto

Este código también está disponible en: Deutsch English Français
Nivel de dificultad
Principiante
Publicado el :
La macro `addvar` analiza una variable dada en una tabla de entrada. Si la longitud del contenido excede `maxlen` (por defecto 200), utiliza una macro externa `%gmModifySplit` para preparar la división, luego distribuye el texto en varias nuevas variables indexadas usando un separador definido. Si la longitud es inferior al límite, la variable simplemente se formatea y se copia. Atención, la macro modifica la tabla de entrada (`&in_data`) si la división está activada.
Análisis de datos

Type : EXTERNE


Los datos son definidos por el parámetro de macro `in_data`. El script espera recibir una tabla existente.

1 Bloque de código
PROC SQL
Explicación :
Cálculo de la longitud máxima de la variable de texto en la tabla de entrada para determinar si se requiere el procesamiento de división.
¡Copiado!
1PROC SQL noprint;
2 select distinct max(LENGTH(&in_var)) into :lngth
3 from &in_data;
4QUIT;
2 Bloque de código
DATA STEP Data
¡Copiado!
1DATA &in_data;
2 SET &in_data(rename=&in_var=_&in_var._);
3 %gmModifySplit(var=_&in_var._, width=&maxlen);
4RUN;
3 Bloque de código
PROC SQL
¡Copiado!
1PROC SQL noprint;
2 select cats(max(count(_&in_var._, "&split"))) into :varn
3 from &in_data;
4QUIT;
4 Bloque de código
DATA STEP Data
¡Copiado!
1DATA &out_data;
2 SET &in_data;
3 array vlst{*} $200 &out_pre. &out_pre.1 - &out_pre.&varn;
4 DO i=1 to %eval(&varn+1);
5 vlst(i)=scan(_&in_var._, i, "&split");
6 END;
7 drop _&in_var._ i;
8RUN;
5 Bloque de código
DATA STEP Data
¡Copiado!
1DATA &out_data;
2 SET &in_data(rename=&in_var=_&in_var._);
3 LENGTH &out_pre $200;
4 &out_pre=_&in_var._;
5RUN;
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.
Información de copyright : PAREXEL INTERNATIONAL LTD / Janssen Research & Development, LLC


Documentación relacionada

Aucune documentation spécifique pour cette catégorie.