Archivo de la etiqueta: CLOSE

Macros (fáciles) de SAS. Número de obsevaciones de un dataset

Con esta macro podréis identificar el número de observaciones de UN CONJUNTO DE DATOS SAS. No funciona con tablas Oracle, Informix, DB2,… me gustaría dejarlo claro. Al emplear la función de I/O OPEN junto con ATTRN y CLOSE no realizamos un conteo de observaciones. Al final el proceso crea una macro variable que se llama NOBS y que podremos usar en nuestra sesión SAS.
%macro observaciones(datos);
/*EL NUMERO DE OBS LO VAMOS A METER EN UNA MV GLOBAL*/
%global nobs;
/*ABRIMOS EL CONJUNTO DE DATOS PARA VER SUS CARACTERISTICAS*/
%let datosid = %sysfunc(open(&datos));
/*SI ESTA ABIERTO ENTONCES LA FUNCION ATTRN NOS DA LA NOBS*/
%if &datosid %then %do;
%let nobs =%sysfunc(attrn(&datosid,NOBS));
/*CERRAMOS EL CONJUNTO DE DATOS*/
%let rc = %sysfunc(close(&datosid));%end;
%mend ;

Fácil y rápida. Si alguien tiene problemas con su uso que lo comunique en el blog. Seguro que es de gran utilidad. Saludos.