Truco SAS. Observaciones de un dataset en una macro variable
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; ```sas *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,… ...