Publicado el :
Macro MIXTA

Macro AHGkeepvar: Selección de variables por posición

Este código también está disponible en: Deutsch English Français
En espera de validación
Esta macro genera dinámicamente un paso DATA para filtrar las variables de una tabla de entrada (`dsn`). En lugar de listar los nombres de las variables, el usuario proporciona una lista de índices (`IDs`). La macro se basa en macros de terceros (`AHGvarlist`, `AHGblank`, `AHGbarename`, `ahgcount`) para recuperar la lista de nombres de variables y construir la cláusula `KEEP` apropiada.
Análisis de datos

Type : MIXTA


La macro procesa una tabla SAS proporcionada como parámetro (`dsn`). La fuente, por lo tanto, depende de la llamada a la macro.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque define la macro. Comienza por determinar el nombre de la tabla de salida. Luego, recupera la lista de variables de la tabla de origen a través de `%AHGvarlist`. El núcleo del procesamiento es un bucle `%do` dentro de la instrucción `keep=`, que traduce cada índice numérico proporcionado en `IDs` a su nombre de variable correspondiente a través de funciones `%scan` anidadas.
¡Copiado!
1%macro AHGkeepvar(dsn,IDs,out=);
2 %IF %AHGblank(&out) %THEN %let out=%AHGbarename(&dsn);
3 %local i count varlist;
4 %AHGvarlist(&dsn,Into=varlist,dlm=%str( ),global=0);
5 %let count=%ahgcount(&ids);
6 DATA &out;
7 SET &dsn(keep=
8 %DO i=1 %to &count;
9 %scan(&varlist,%scan(&IDs,&i))
10 %END;
11 );
12 RUN;
13
14%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.