Truco SAS. Observaciones de un dataset en una macro variable

4 Jun

SAS tip sencillo para el uso de las funciones de Input Output de SAS y que puede ahorrarnos más de un paso data. Se trata de una macro que pone el número de observaciones de un dataset en una macrovariable global. Al emplear funciones de I/O su ejecución es inmediata:

*MACRO PARA IDENTIFICAR EL NUMERO DE OBSERVACIONES DE UN DS;

%macro numobs(ds,mv);

*CREAMOS UNA MACRO VARIABLE GLOBAL;

 %global &mv.;	data _null_;

*ABRIMOS EL FICHERO;

 	datossid=open("&ds.");

*OBTENEMOS EL ATRIBUTO NOBS QUE CONTIENE

EL NÚMERO DE OBSERVACIONES;

 	no=attrn(datossid,'nobs');

*ASIGNAMOS EL VALOR A LA MV;

 	call symput ("&mv.",compress(no));

*CERRAMOS EL FICHERO;

 	datossid=close(datossid);

 run;

%mend;

*EJEMPLO DE USO;

data uno;

 do i=1 to 100;

 output;

 end;

run;

%numobs(uno,obs_uno);

%put Observaciones de uno =&obs_uno.;

Como vemos es un código sencillo pero muy práctico ya que nos permite obtener el número de observaciones de forma instantánea. Con él podemos validar procesos, realizar cálculos,…

Como siempre para cualquier duda o cuestión rvaquerizo@analisisydecision.es

2 respuestas a «Truco SAS. Observaciones de un dataset en una macro variable»

  1. Hola,

    Duda sobre como nombras la variable que indica el num de obs :obs_uno, pues lo que no sé es como cambiar el nombre del fichero o dejarla simplemente obs .

Deja una respuesta

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