Archivo de la etiqueta: proc datasets

Truco SAS. Tablas de una librería en una macro variable

Me plantean una duda, como crear un conjunto de datos con las tablas de una librería en sas y posteriormente generar una macro variable con ellos, esta es una entrada análoga a otra del blog pero sirve para recordar como funciona el ODS de SAS y el PROC DATASETS un procedimiento que no he usado habitualmente. Lo primero que vamos a hacer es observar que resultados arroja el PROC DATASETS en su sintaxis más sencilla, ver los contenidos de una librería:

 ods trace on;
proc datasets lib=datos;
quit;
ods trace off;

Recordamos que ODS (Output Delivery System) TRACE ON nos permite ver en la log de SAS los elementos que se obtienen como resultado, en este caso, el más sencillo, tenemos:

Output Added:
-------------
Name: Directory
Label: Directory Information
Template: Base.Datasets.Directory
Path: Datasets.Directory
-------------

Output Added:
-------------
Name: Members
Label: Library Members
Template: Base.Datasets.Members
Path: Datasets.Members
-------------

Evidentemente nos interesa Members para poner en una tabla SAS todos los miembros de la librería:

ods output Members=tablas;
proc datasets lib=datos ;
quit;

Ahora tenemos que meter en una macrovariable todos los elementos del campo name de la tabla SAS que hemos generado. Para ello en vez de emplear el habitual PROC SQL podemos usar una concatenación sobre los valores de name que diera como resultado final la macrovariable con la lista de las tablas: Sigue leyendo Truco SAS. Tablas de una librería en una macro variable

Trucos SAS. Modificar el nombre de una tabla con código

Dando un repaso a las entradas de Google me he encontrado repetida la frase: "cambiar el nobre de un dataset SAS". Imagino que desearán cambiar el nombre de un dataset con código sin realizar un paso DATA. Para hacer esta labor hemos de emplear el PROC DATASETS y la sentencia CHANGE. Veamos un código de ejemplo muy sencillo:


*DATASET ALEATORIO;
data sasuser.uno;
 do i=1 to 1000;
 aleat=ranuni(9);
 output;
 end;
run;
*CAMBIAMOS EL NOMBRE;
proc datasets lib=sasuser nolist;
change uno=borrar;
quit;
*ELIMINAMOS EL DATASET;
proc delete data=sasuser.borrar; quit;

El código es extremadamente sencillo. Imagino que las entradas que estaban llegando con esta duda buscaban algo parecido a esto. El PROC DATASETS es un gran desconocido.

Macros SAS. Informe de un dataset en Excel

 

Informe dataset

Tengo por ahí este programa SAS interesante. Es una macro que realiza un pequeño informe sobre un dataset. Nos ofrece la librería, las variables y el tipo, longitud, posición y formato de estas y por ultimo el numero de observaciones. Si el dataset que deseamos explorar es una tabla oracle, informix o db2 hace un count(*) para determinar el numero de observaciones. Este breve resumen lo vuelca en una tabla temporal SAS que nos llevaremos a Excel. Con esto los parámetros que recibe la macro son el dataset sobre el que realizamos el resumen y la ubicación del Excel de salida. Hache os pongo el código Sigue leyendo Macros SAS. Informe de un dataset en Excel