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.

4 pensiamientos en “Macros (fáciles) de SAS. Número de obsevaciones de un dataset

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *