Ejemplo de uso del paquete XML de R

Quería poneros unos apuntes sobre el paquete XML de R. El caso es que entre todos los fregados en los que ando metidos he retomado el tema de leer páginas web con R. Y con esto he llegado a la sentencia install.packages("XML") y con la fiebre mundialista estoy en lo siguiente: pag="http://es.wikipedia.org/wiki/Anexo:Finales_de_la_Copa_Mundial_de_F%C3%BAtbol" pagina=data.frame(readHTMLTable(pag)) ganador=data.frame(substr(paginaNULL.Ganador,3,length(paginaNULL.Ganador))) names(ganador)=primero segundo=data.frame(substr(paginaNULL.Segundo.puesto,3,length(paginaNULL.Segundo.puesto))) names(segundo)="segundo" Muy sencillo, leemos la wikipedia y nos creamos un objeto con las finales de todos los mundiales. Me voy a centrar en los finalistas. Parece que tengo algún problema con las tildes y con nulos. Grafiquemos un poco: ...

8 de junio de 2010 · rvaquerizo

Trucos Excel. Mapa de España por Comunidades Autónomas

Vamos a mejorar muchos de nuestros informes con mapas de España realizados a través de Excel. Os contaré la metodología que empleo para realizarlos y a partir de ahí vosotros podréis mejorarlos. Voy a realizar un mapa de España por Comunidades Autónomas y le vamos a modificar en función del gasto en prestaciones por desempleo (http://www.tt.mtin.es/periodico/laboral/201006/mayo.pdf).Todo empieza por conocer los archivos SVG y pasa por agradecer a los usuarios de la wikipedia que distribuyan todo tipo de mapas realizados por ellos mismos y de uso libre. En este caso buscamos un mapa de España por Comunidades Autónomas . Necesitamos una aplicación libre para manejar estos mapas y la mejor, más adecuada y la que yo uso es Inkscape la conocí ayer por la mañana, después me harté de botellines, me fui a sembrar unas guindillas y a día de hoy ya hago mis pinitos con el portátil del trabajo, porque en el mío no funciona. Da problemas en Win 64 bits (¡si!, uso win, como tú que lees esto ya que es muy poco probable que pertenezcas al 3% que usa Mac o al 3% que usa Linux). Con esta aplicación tenemos a nuestro alcance ver perfectamente que es lo que hace el XMLy que espero termine en un paquete de R para hacer mapas de España.Bien, tenemos Inkscape y el mapa por Comunidades de Wikipedia y ahora viene un trabajo muy sencillo, muy aburrido y muy en la línea de un tipo mediocre como el que escribe ahora mismo. Voy a copiar en Inkscape y pegar en Excel cada Comunidad Autónoma, lo transformo en un objeto de Ms-Office para que me sea más sencillo modificarle las propiedades y le doy un nombre a cada figura. Tras 5 minutos haciendo un puzle tengo algo parecido a esto en Excel: ...

5 de junio de 2010 · rvaquerizo

¿Truco? Leer .sas7bdat sin SAS

Me han pasado una tabla SAS y no sé como llevármela a SPSS. Este problema es habitual y ha traído de cabeza a más de uno. Es lo que tienen estas herramientas tan propietarias, si en tu organización tienen WPS (bueno bonito y barato) esto no pasa. En fin, me ha llegado esta cuestión y voy a plantearos una posible forma de resolverla. Podríamos usar los formatos XPORT, la persona que me pasa la tabla emplea el libname xport y me envía un fichero .xpt, sin embargo esto no pasa. Casi siempre nos mandan el .sas7bdat y tenemos un problema. ...

5 de mayo de 2010 · rvaquerizo

Macros SAS. Limpiar una cadena de caracteres

Macro de SAS que he utilizado hoy para limpiar caracteres en una cadena de texto. Está muy limitada y es muy sencilla pero puede serviros: ```sas %macro valida(in,out); length escribe $55.; escribe=""; do i=1 to length(&in.); j=substr(&in.,i,1); if j in ('A','B','C','D','E','F','G','H','I','J','K', 'L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','Ñ') then escribe=trim(escribe)||j; else if substr(&in.,i,1)=" " then escribe=trim(escribe)||"-"; else escribe=trim(escribe); drop i j escribe; end; &out.=tranwrd(compress(escribe),"-"," "); %mend; Es bastante mala y limitada, insisto. Si alguien aporta algo se agradecerá. El tema es que recorre una variable alfanumérica carácter a carácter y si no es una letra mayúscula se lo chimpunea sin ningún miramiento, aporta un poco más de talento cuando aparece un espacio en blanco. Ahí va el ejemplo de uso: ...

29 de abril de 2010 · rvaquerizo

Trucos R. Función ddply del paquete plyr

El paquete plyr de R tiene unas funciones que nos permiten hacer sumarizaciones de forma muy rápida y sencilla. Hoy quería trabajar con la función ddply. Todos esos resúmenes y agregaciones que nos cuestan mucho código con la función ddply pasan a ser de lo más sencillo. Al tajo, o mejor dicho, al ejemplo, como siempre, creo que ilustrar ddply es mejor que entrar en su sintaxis, para eso está la ayuda. Creamos un data.frame con datos inventados que tendrá duplicados por id_cliente : ...

19 de abril de 2010 · rvaquerizo

Combinaciones de k elementos tomados de n en n. Con SAS y con R

Me gustaría plantearos un problema que me ha ocurrido recientemente con SAS. Necesitaba todas las posibles combinaciones de 9 elementos tomados de n en n. Tenia que crear un dataset con todas estas combinaciones. Antes de ponerme a programar toca buscar en Google « sas combinations » y tras un rato buscando encuentro el siguiente link. Este link contiene una macro de SAS que nos permite crear todas las combinaciones de k elementos tomados de n en n: ...

10 de abril de 2010 · rvaquerizo

Trucos SAS. Macrovariable a dataset

En alguna ocasión he necesitado pasar el contenido de una macrovariable a un dataset SAS. Con el tiempo he ido refinando el código empleado para hacer esta tarea y, como es habitual, lo comparto con vosotros para que os ayude en vuestro trabajo diario en grandes bancos, aseguradoras, compañías energéticas y de telecomunicaciones en las que seguro que podéis encontrar un hueco para que podamos desarrollar proyectos de calidad (¡ejem!). Tras la publicidad veamos el ejemplo: ...

1 de abril de 2010 · rvaquerizo

Trucos Excel. Modificar la configuración regional con Visual Basic

Con Visual Basic podemos modificar la configuración regional. Podemos crear macros en Excel que nos realicen esta tarea. De este modo si trabajamos con aplicaciones que tienen configuración americana podemos cambiar con una macro, pegar los valores y volver a cambiar la configuración. Para poner separador decimal «.» y separador de miles «,» tendremos que emplear el siguiente código: Sub formato_americano()'' formato_americano Macro' With Application .DecimalSeparator = "." .ThousandsSeparator = "," .UseSystemSeparators = False End With End Sub Es un excelente ejemplo de uso de Application. De forma análoga si deseamos volver a la configuración europea solo debemos emplear los separadores del sistema: ...

21 de febrero de 2010 · rvaquerizo

Truco R. Valores perdidos a 0, ejemplo de uso de sapply

Muy habitual partinos la cabeza con valores perdidos en R. Los NA pueden darnos algún quebradero de cabeza. Este truco es muy sencillo, transforma valores missing a 0 y nos sirve para aplicar funciones a data.frame con la función sapply. Veamos el sencillo ejemplo: ```r x=c(1,23,5,9,0,NA) y=c(5,45,NA,78,NA,34) dataf=data.frame(cbind(x,y)) mean(datafx,na.rm=TRUE) mean(datafy,na.rm=TRUE) #Podría interesarnos tener en cuenta los NAs sum(datafx,na.rm=TRUE)/nrow(dataf) sum(datafy,na.rm=TRUE)/nrow(dataf) Tenemos un data.frame con dos variables que contienen valores perdidos, deseamos crear una función que pase estos valores a 0 y aplicarlo al data.frame de partida: ...

31 de enero de 2010 · rvaquerizo

Los mejores y más útiles trucos de R

Como estamos medio de fiesta y da pareza poner en funcionamiento los engranajes del cerebro para producir ideas originales, me limitaré a apuntar un enlace en el que los usuarios han propuesto y votado sus mejores trucos de R. Para los más perezosos, indicaré que el campeón ha sido la función str(). Y para los menos perezosos, aparecen en la lista métodos para acceder y manipular datos alojados en GoogleDocs directamente.

29 de diciembre de 2009 · cgbellosta