Macro SAS. Crear variables dummy desde una variable categórica

En alguna ocasión ya he conjugado el verbo dumificar y, preparando una segmentación, he creado una macro SAS que genera variables dummy a partir de variables categóricas. Es decir, si la variable A toma valores 1, 2 y 3, tendría que generar A_1 con valor 1 si A toma 1 y con valor 0 en caso contrario; A_2 tiene valor 1 si A es igual a 2, y A_3 tiene valor 1 si A es igual a 3. No es complicado de comprender: pasamos de una variable con tres niveles a tres variables con valores 0 o 1. Para ésto podemos emplear array o la siguiente macro: ...

2 de diciembre de 2015 · rvaquerizo

Truco Excel. Función para identificar el color de una celda

En alguna entrada anterior ya vimos cómo identificar el color de una celda con Excel. Recientemente me trasladaron una duda: se trataba de realizar una acción determinada si el color de la celda era distinto. Algo muy habitual cuando realizas alguna validación visual y marcas celdas con otro color. La solución es sencilla: se trata de crear nuestra propia función que identifique el color de la celda: Function color_celda(celda As Range) color_celda = celda.Interior.Color End Function En este caso podríamos realizar funciones del tipo =SI(color_celda(A1) <> 16777215; ACCION1; ACCION2); además, podemos darle otra vuelta de tuerca y, si deseamos ordenar por colores, podemos hacer: ...

1 de diciembre de 2015 · rvaquerizo

Reunión del Grupo de Usuarios de R de Madrid. 12 de noviembre

Este jueves día 12 de noviembre nos volvemos a juntar el Grupo de Usuarios de R de Madrid en el MediaLab-Prado. La reunión comenzará a las 19:00 horas y, además de los temas administrativos habituales, veremos: – Mariano Rico: “La web de datos desde R”. – Rafael Cobo, María Allanegui, Rafael Bermúdez Míguez: “Jugando con time series: de raw a app”. – Pedro Concejero: “Análisis de supervivencia para rotación de clientes”. ...

10 de noviembre de 2015 · rvaquerizo

Truco SAS. Identificar el lunes de cada semana para clasificar por semanas

El otro día una lectora preguntaba una duda: quería encontrar el lunes dentro de un conjunto de fechas con el objetivo de clasificar semanas. Para realizar esta tarea contamos con la función WEEKDAY de SAS, que nos permite numerar los días de la semana donde el domingo es el primer día de la semana. De este modo hay que restar los días necesarios para llegar al día 2 de la semana. Lo vemos con un ejemplo: ...

10 de noviembre de 2015 · rvaquerizo

Mapas SAS a partir de shapefile

Los mapas como éste no los hago habitualmente con SAS, pero puede interesaros saber cómo se pueden hacer. Para la realización de mapas a partir de shapefiles suelo usar R; los que seáis habituales del blog sabéis que hay entradas al respecto. Sin embargo, recientemente he conocido QGIS, que interactúa a la perfección con Excel. El ejemplo de hoy es para aquellos que no conocéis QGIS o R y estáis más habituados a trabajar con SAS. Se trata de importar un shapefile con SAS, poder hacer un sencillo tratamiento de datos y posteriormente realizar un mapa muy simple. Para ilustrar el ejemplo, vamos a realizar un mapa por municipios de una provincia española con SAS y, para ello, necesitamos un fichero .shp que os vais a descargar de http://www.gadm.org/country; seleccionáis los mapas de España y descargáis el ZIP que contiene los archivos. ...

29 de octubre de 2015 · rvaquerizo

Truco para EMB Emblem. Cambiar el nivel base de un factor

Un buen truco que me han descubierto hoy para los usuarios de EMB Emblem: cómo cambiar el nivel base de un factor de datos sin necesidad de pasar por los datos (habitualmente SAS) o sin hacerlo a posteriori (habitualmente Excel, que era lo que hacía el ahora escribiente). Cuando se generan los datos, se genera el fichero binario .BID y el fichero que se emplea para leer ese fichero, el .FAC. Para alterar el nivel base, debemos abrir este archivo .FAC con un bloc de notas o cualquier editor de texto plano. Al abrirlo, tendremos lo siguiente: ...

22 de octubre de 2015 · rvaquerizo

Reunión de usuarios de R de Madrid. 15 de octubre de 2015

El próximo jueves día 15 de octubre comienzan de nuevo las reuniones del Grupo de Usuarios de R de Madrid. A partir de ahora la idea es que el Grupo se junte todos los segundos jueves de mes en el MediaLab-Prado desde las 19 horas. La agenda para esta reunión será: Fecha: jueves 15 de octubre. Hora: 19:00 – 20:30. Lugar: MediaLab-Prado. Presentaciones: Francisco Rodríguez: “knitr” y “rmarkdown”. Raúl Vaquerizo: Mapas de R en Excel. Jesús Herranz: Modelos Survival. Píldora: Gonzalo Mateo: Introducción a Rcpp. Interesante agenda. En mi caso, continuaré con la serie monográfica “R y otros” y esta vez enseñaré una herramienta que hace mapas municipales por provincia con Excel utilizando R (por supuesto), de forma que un usuario sin conocimientos de R o QGIS pueda hacer unos mapas muy atractivos. ...

9 de octubre de 2015 · rvaquerizo

Truco Excel. Insertar imágenes con Visual Basic

Si deseáis insertar una imagen en Excel desde Visual Basic mediante una macro, tenéis que ejecutar un código similar a este: Sub inserta_imagen(hoja) Sheets(hoja).Select ActiveSheet.Pictures.Insert("C:\grafico.png").Select With Selection.ShapeRange .Top = Range("B5").Top .Left = Range("B5").Left End With End Sub En una hoja de vuestro libro de Excel insertáis el archivo especificado. Luego lo ubicáis donde sea necesario; en el ejemplo que os he puesto, en la celda B5. Truco sencillo. Saludos.

15 de septiembre de 2015 · rvaquerizo

Truco Excel. Gráficos de dispersión que identifican los puntos

Yo no sé hacer gráficos de dispersión con Excel en los que se identifiquen los puntos mediante un color; es necesario programar en Visual Basic para hacerlo. Imagino que se podrá hacer de forma más elegante, pero hoy quería mostraros que esa tarea se puede llevar a cabo mediante macros. Los datos que tenemos tienen un valor para $X$, un valor para $Y$ y un valor que nos identifica el grupo de cada registro. ...

28 de julio de 2015 · rvaquerizo

Truco Excel. Actualizar los filtros de una tabla dinámica con Visual Basic

Imaginad que tenéis que cambiar uno o varios filtros de todas las tablas dinámicas de una hoja, y cada una de las tablas dinámicas tiene un nombre distinto, o hay un número distinto de tablas dinámicas en cada hoja. Eso dificulta a la hora de crear un bucle para la modificación de filtros. Pues este truco de Excel os permitirá actualizar un filtro de una fecha (o cualquier otro) para todas las tablas dinámicas de una hoja. El código es muy sencillo y no creo necesario subiros a la web algún ejemplo: ...

24 de julio de 2015 · rvaquerizo