Formación

Trucos Excel. Poner etiquetas en gráficos de dispersión

Una macro de Visual Basic muy sencilla es la única forma de etiquetar gráficos de dispersión que me he encontrado. Si alguien encuentra otro modo más sencillo de hacerlo que lo comente en estas líneas. La intencion es llegar a este gráfico:

etiquetas-grafico-dispersion-excel-1.png

No es que sea un gran gráfico, recordad que está hecho en Excel, pero nos permite ver como se distribuyen los paises en función de la renta per cápita y el número de horas trabajadas al año. Además podemos identificarlos perfectamente, como es el caso de Luxemburgo, como siempre. Los datos para realizar este gráfico están en la web de la OCDE. Nos los descargamos en Excel y tenemos una tabla de esta forma:

Trucos SAS. Validación de consultas con PROC SQL

Hay ocasiones en las que lanzamos consultas a las BBDD con SAS y necesitamos saber si son correctas. Quería plantearos un truco SAS para PROC SQL que valida las consultas antes de ser ejecutadas. Empiezo el truco en la línea habitual, creo un dataset de ejemplo y os presento como realizar la validación, de este modo vosotros podéis copiar y pegar el código en una sesión de SAS y comprobar su funcionamiento. Datos aleatorios de partida:

COMIENZA LA CUENTA ATRAS. III JORNADAS DE USUARIOS DE R

Por fin están en marcha las III Jornadas de Usuarios de R de España. En este enlace tenéis toda la información disponible. Para esta tercera edición hay que destacar:

  • Serán en Madrid en la Escuela de Organización Industrial
  • Habrá talleres, bajo mi punto de vista uno de los mayores aciertos
  • Podéis participar, R tiene que salir del ámbito universitario e investigador y pasar al ámbito empresarial. Muchos podéis pensar que yo debería aplicarme el cuento…
  • Necesitan patrocinio. No sólo por temas económicos, también por la repercusion que implica el patrocinio. Todos aquellos que trabajáis en grandes organizaciones podéis poner en contacto al comité organizador con vuestras empresas
  • También podréis realizar aportaciones voluntarias ya que la asistencia es completamente gratuita
  • Creo que es el punto en el que este foro alcanza su madurez y es el momento de que el mundo empresarial fije sus ojos en R y en la comunidad de usuarios que tiene detrás
  • Y sobre todo y más importante. Podéis conocerme en persona , por muchos asistentes que haya a mi se me ve y no sólo por el Windows 7

Creo que los ingredientes para estas nuevas jornadas garantizan el éxito. ¡Nos vemos en noviembre!

Trucos R. Gráficos de velocímetro con R

Hoy toca homenaje a 2 lectores del blog. Es la primera versión de un gráfico en forma de velocímetro con R. Cuando disponga de más tiempo modificaré la versión para darle mayor vistosidad. Como es habitual el truco nos servirá para trabajar con un interesante paquete de R como RColorBrewer. Un paquete que me descubrió un lector. El resultado final no es muy espectacular (de momento):

velocimetro_r.png

De momento la versión más sencilla. Veamos el código R que representa el semicírculo y posteriormente lo analizaremos. Me gustaría que también lo ejecutéis vosotros para comentarme posibles incidencias. Se genera el gráfico como PNG en C:\temp:

Trucos Excel. Tranformar un caracter a fecha

Si tenemos en Excel celdas con valores en la forma:

  • viernes 1 de enero de 2010
  • sábado 2 de enero de 2010
  • domingo 3 de enero de 2010
  • _… _

y deseamos transformarlo en fecha podemos hacer lo siguiente:

*=TEXTO(IZQUIERDA(EXTRAE(A2;ENCONTRAR(» «;A2;1)+1;30);2) &EXTRAE(EXTRAE(A2;ENCONTRAR(» «;A2;1)+1;30);6;4)&DERECHA(EXTRAE(A2;ENCONTRAR(» «;A2;1)+1;30);4 );»dd/mm/aaaa»)1

¡Toma función! Vamos a contar paso por paso como funciona:

  1. necesitamos 1 de enero de 2010 de viernes 1 de enero de 2010 , supongamos que está en la celda A2. Eso lo conseguimos encontrando el primer espacio en blanco con la función ENCONTRAR(» «;A2;1) en este caso el 6, luego debemos empezar por el siguiente, por eso debemos sumar 1. Con EXTRAE(A2;ENCONTRAR(» «;A2;1)+1;30) nos quedamos con 1 de enero de 2010
  2. ese texto tiene que pasar a otro texto con el formato dd/mm/aaa. El día lo cogemos con IZQUIERDA(EXTRAE(A2;ENCONTRAR(» «;A2;1)+1;30);2) el mes es más complejo porque queda entremedias EXTRAE(EXTRAE(A2;ENCONTRAR(» «;A2;1)+1;30);6;4) y el año se hace de forma análoga al día DERECHA(EXTRAE(A2;ENCONTRAR(» «;A2;1)+1;30);4 ) y hemos creado el texto 1 ener2010
  3. por último empleamos la función TEXTO para transformar esa cadena de caracteres a otra cadena de caracteres con el formato deseado dd/mm/aaaa y todo ello lo multiplicamos por 1 para crear el número 40179 al que podemos dar el formato de fecha que queramos y con el que podemos realizar operaciones

Espero que esta fórmula os sirva y os ayude en vuestro trabajo con Excel cuando tengáis que cambiar textos a fechas (o al contrario). También podemos emplear la función FECHANUMERO pero esa me la guardo para otro día.

Leer y representar datos de Google Trends con R

En el blog del profesor Serrano tomé contacto con el paquete RGoogleTrends para leer datosde Google Trends. Tras diversos intentos y analizando bien el paquete RGoogleTrends no he sido capaz de hacerlo funcionar. Sin embargo sólo hay que leer un csv, por esto podemos emplear read.csv para descargarnos los datos de Google Trends y analizarlos con R. Además el objeto resultante nos será mucho más familiar que el generado por RGoogleTrends. Para realizar esta lectura necesitamos lo siguiente:

Curso de lenguaje SAS con WPS. Librerías en WPS

Sobre el trabajo con librerías en SAS se pueden escribir libros. Todas las personas que han aprendido SAS conmigo a lo largo de los años han oído el mismo duscurso. «Hay que tener mucho cuidado con las librerías en SAS. Tenemos que tener muy claro que tablas son temporales, cuales han de ser permanentes. El problema del trabajo con SAS reside en el espacio en disco». Ya son decenas las personas que ahora hacen lo que pueden con SAS que han escuchado estas palabras y que siguen llenando discos y más discos incluso de los servidores con SAS más potentes de España.

Macros (fáciles) de SAS. Determinar si existe una variable en un dataset

Duda que me plantearon el otro día. ¿Es posible determinar si existe una variable en un conjunto de datos SAS? Pretendían crear una macro variable que tomara el valor 1 si existía o 0 si no existía. Resolví la duda pero me guardé la macro para ponerla en el blog y así la podéis utilizar todos. De eso se trata, de compartir mis conocimientos con todos de forma altruista por ello prefiero que planteéis las dudas en el blog, no por correo. Así, entre todos, las podemos resolver. En este caso la macro es muy sencilla y tiene pocas líneas:

Curso de lenguaje SAS con WPS. Sentencias condicionales IF THEN

Las sentenciasIF THEN son básicas en la programación SAS y en todos los lenguajes. Su estructura es muy sencilla: IF <condición> THEN <acción>; ELSE <acción>. Todas estas sentencias empezarán con IF y como condición podemos poner una o varias. Para crearlas tenemos los operadores de comparación:

operadores-de-comparacion.png Para concatenar condiciones emplearemos los operadores lógicos:

operadores-logicos.png

Y aplicando la lógica realizaremos las condiciones en nuestra programación con WPS. Entre las acciones que se ejecutarán cuando se cumpla la condición podemos destacar:

Nuestras funciones de R en menús con rpanel y svWidgets

Hoy quería acercarme a los paquetes **rpanel **y svWidgets para crear ventanas y menús respectivamente. La idea es sencilla, tenemos funciones en R que empleamos habitualmente y con ellas vamos arealizar un menú. Partimos de una función muy sencilla en R para eliminar datos con valores missing. [Por cierto, que cansado estoy de escribir palabras en inglés para facilitar las búsquedas, un valor missing es un valor perdido. Tras el lapso continúo]. Mi función:

El debate político o como analizar textos con WPS

¿Qué hacen los políticos españoles en el Congreso de los Diputados? Las tertulias radiofónicas están llenas de analístas políticos que podrán opinar sobre la labor del Congreso mejor que yo. Sin embargo yo tengo WPS, sé programar en SAS y en la web del Congreso están todas las sesiones y todas las intervenciones de la democracia. Pues con estos elementos vamos a iniciar un proceso de text mining, aunque no llegaremos a realizar ningún análisis complejo. Para comenzar, como siempre, necesito datos. Me he guardado la sesión del Congreso de los Diputados del día 26/01/2011 como web y posteriormente con Word la he salvado como fichero de texto (ojo con las codificaciones). De todos modos podéis descargaros aquí el fichero.

Trucos SAS. Variables dicotómicas desde factores

El verbo dumificar es una invención propia y consiste en la acción de transformar una variable en una o n variables dicotómicas y eso es lo que os planteo en esta entrada, dumificar variables cualitativas con SAS. Partimos de una variable discreta o factor y hemos de transformarla en n variables, tantas como valores tome el factor, que toman valores 1 o 0 en función del grupo al valor que toma. Gráficamente:

Truco R. Paletas de colores en R

Paletas de colores en R

En cuántas ocasiones habéis querido dar color a un gráfico y por aligerar código creáis gráficos de este tipo:

x = rpois(100,as.integer(runif(10)*1000))

barplot(sort(x))

Pues en R esta labor puede costarnos muy poco si empleamos las paletas de colores. Hoy quiero presentaros las siguientes:

  • rainbow
  • heat.colors
  • terrain.colors
  • topo.colors

Ejemplos de uso:

require(graphics)

barplot(sort(x),col = rainbow(x),main="Paleta rainbow")

barplot(sort(x),col = heat.colors(length(x)),main="Paleta heat")

barplot(sort(x),col = topo.colors(length(x)),main="Paleta topo")

Comparad, metemos los 4 gráficos en una sóla ventana y tendremos la figura con la que iniciamos esta entrada: