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.

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

  1. Hola,

    Sabeis si existe algo como los cursores de SQL en SAS?
    Quiero recorrer los distintos elementos de una tabla (columna de tipo char), y para cada elemento actualizar otros campos dependiendo del valor.

Deja un comentario

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

[bws_google_captcha]