Truco SAS. Unir todas las hojas de un Excel en una

Empleamos LIBNAME con SAS para acceder a Excel. Es un truco con limitaciones y que se tiene que ir mejorando a futuro. Se trata de leer todas las hojas de un libro Excel y pegarlas verticalmente en otra hoja QUE NO DEBE EXISTIR PREVIAMENTE. La macro es la siguiente; no se acompaña de un ejemplo de uso debido a su sencillez: %macro une_excel(ubicacion, nombre_union); libname selec "&ubicacion."; proc sql noprint; select "SELEC.'" || memname || "'n" into :lista_excel separated by " " from dictionary.members where libname = "SELEC"; quit; data SELEC.&nombre_union.; set &lista_excel.; run; libname selec clear; %mend; %une_excel(C:\TEMP\unir_excel2\unidos.xlsx, todas); Creamos una librería SAS a un libro Excel determinado. Leemos con DICTIONARY las hojas que tiene dicho libro y las unimos en una hoja de ese libro, que será la última. Como buena costumbre, desasignamos la librería con LIBNAME CLEAR. Como se ha indicado antes, tiene limitaciones; por ejemplo, no debe existir la hoja final con la unión. Pero es un buen ejemplo de uso de LIBNAME + Excel y DICTIONARY. Saludos.

20 de septiembre de 2013 · rvaquerizo

Truco SAS. SYSECHO para controlar las ejecuciones en Enterprise Guide

Un truco SAS que envió una lectora del blog. Se emplea en Enterprise Guide y nos permite conocer en qué punto del código está nuestra ejecución. En Enterprise Guide, si no somos muy ordenados con nuestros códigos, podemos tener algún problema; en la pantalla de estado de las tareas tenemos un nombre de la tarea, un estado, la posición en cola, el servidor desde el que se ejecuta y el tipo de servidor para los momentos en los que trabajamos con múltiples servidores. Con SYSECHO, lo que hacemos es ver el estado de la tarea. Ejemplo práctico a ejecutar: ...

11 de septiembre de 2013 · rvaquerizo

Mapa Excel por distritos de Barcelona

De nuevo, agradecer a Manel Pla su colaboración con la bitácora. En esta ocasión, pone a nuestra disposición un mapa de Barcelona por barrios que podéis descargaros en el siguiente enlace: Relación de distritos de Barcelona (XLS) Sigue la misma línea de todos los mapas para Excel colgados en esta web, así que no es muy difícil su manejo. Pero si tenéis dudas o problemas, contactad. Agradecer a Manel su colaboración con este gran mapa de Barcelona en Excel. Saludos.

9 de junio de 2013 · rvaquerizo

Trucos SAS. Ordenar las variables de un dataset

Para cambiar el orden de las variables en un conjunto de datos SAS, hemos de emplear RETAIN antes de SET. Este truco es la respuesta a una duda planteada en el blog. Con un vistazo rápido al ejemplo entenderemos la sintaxis: data datos; do i = 1 to 20; importe1 = ranuni(8) * 100; importe2 = ranuni(3) * 100; importe3 = ranuni(1) * 100; id = put(i, z5.); output; end; drop i; run; data datos_reordenados; retain id importe3; set datos; run; Como vemos, RETAIN nos permite reordenar las variables del dataset independientemente del tipo de variable que estemos manejando. También podríamos emplear algún otro tipo de sentencia, pero es recomendable usar RETAIN; como vemos, no es necesario poner el total de las variables. Saludos.

30 de mayo de 2013 · rvaquerizo

Manual para realizar mapas en Excel con archivos SVG

Nueva documentación que nos ha mandado nuestro compañero Manel Pla. Se trata de un manual para la creación de mapas en Excel con el método del que ya hablamos una vez en el blog. El resultado del trabajo de Manel ya lo conocéis. A continuación tenéis el enlace con la descarga del manual: [Manual de creación de mapas en color para Excel (PDF)](/images/2013/05/CREACIO MAPA VALLES EN COLORS.pdf) Con colaboración sí que se puede dotar de más contenido al blog. Muchas gracias, Manel. Saludos.

17 de mayo de 2013 · rvaquerizo

Mapa de Catalunya en Excel por comarcas

Nuevo mapa en Excel a la colección de esta web. Se trata de un mapa de Cataluña por comarcas que funciona a las mil maravillas y que nos ha pasado nuestro lector Manel Pla. Hay que reconocer que es un trabajo excelente, muy trabajado y sencillo de utilizar; incluso podéis pintar distintas medidas. Seguro que será de mucha utilidad. Además de este gráfico, Manel también nos ha pasado un mapa de Barcelona que colgaré en los próximos días. La verdad es que con estos lectores da gusto tener el blog. ...

29 de abril de 2013 · rvaquerizo

Mosaic plot con R

Los gráficos de mosaico (mosaic plot) me gustan cada vez más. Hoy quería confesaros una cosa: no me gustan los gráficos. Sé que en esta bitácora electrónica hay muchos ejemplos de gráficos y muchos trucos referentes a ellos, pero siempre prefiero un dato representado en una tabla. Después de esta confesión, voy a rebatirme a mí mismo: es muy complicado ver algo en una tabla de contingencia cuando tenemos tres o cuatro dimensiones. Sin embargo, con un mosaic plot como el que tenemos arriba, somos capaces de estudiar cruces de frecuencia para 3-4 dimensiones. ...

23 de abril de 2013 · rvaquerizo

Analisis cluster con SAS. La importancia de las semillas en las k-medias

El PROC FASTCLUS en SAS nos permite realizar análisis de agrupamiento dirigido mediante el algoritmo de las k-medias. Este algoritmo tiene algunos problemas, pero nos puede servir para agrupar de forma multivariante observaciones. Es rápido, sencillo de explicar y, con algunas lagunas, no funciona mal. Como aproximación a nuestras segmentaciones puede ser muy práctico. Hoy se va a utilizar para identificar a los clientes más complicados de segmentar, a aquellas observaciones que quedan en las zonas grises (http://www.datanalytics.com/blog/2011/08/03/clustering-iii-sobresimplificacion/). ...

15 de abril de 2013 · rvaquerizo

Trucos SAS. Lista de variables missing

Duda que me plantearon ayer por la tarde: dada una serie de variables, determinar qué registro tiene todas esas variables nulas. El truco que planteo puede servir para determinar incluso cuántos valores perdidos tiene esa lista de variables; ese truco me lo reservo para otro día. El código lo acompaño con un ejemplo para que se pueda ejecutar y analizar su funcionamiento: /* GENERAMOS DATOS ALEATORIOS CON MISSING */ data aleatorio; do i = 1 to 20000; aleat1 = sqrt(rannor(45)); aleat2 = sqrt(rannor(5)); aleat3 = sqrt(rannor(4)); aleat4 = sqrt(rannor(450)); aleat5 = sqrt(rannor(40)); output; end; run; /* IDENTIFICAMOS FILAS COMPLETAMENTE NULAS */ data fila_nula; set aleatorio; nulo = 0; array varib(*) aleat1--aleat5; do j = 1 to dim(varib); if not missing(varib(j)) then nulo = 1; end; drop j; if nulo = 0; run; Muy sencillo el truco. Si se encuentra alguna variable que no es nula, la variable nulo ya no toma el valor 0. Espero que os sea de utilidad. Saludos.

8 de marzo de 2013 · rvaquerizo

Truco SAS. Limpiar un fichero de texto con SAS

El otro día me llegó al correo la siguiente cuestión acerca de caracteres extraños en un fichero de texto y la importación a SAS: Tengo un problema a la hora de importar a SAS un fichero .txt. El caso es que tiene en algunos registros el carácter “flechita”. Ejemplo: Calle Paseo de la Castellana “flechita” 60. Cuando lo importo como carácter, para al llegar a la flechita. No sé si podrás ayudarme. Muchas gracias por adelantado. ...

4 de marzo de 2013 · rvaquerizo