What about newer competition from free, open-source alternatives like R?

El tito Goodnight está más pendiente de IBM y Oracle que de R. Está mayor el hombre, pero sigue siendo un genio y un figura. Nunca ha sido mi jefe (no porque yo no quisiera) y no comparto ni una sola de las opiniones que tiene en la entrevista que le hacen, pero hay que reconocer que no se ha equivocado mucho en 40 años porque es una de las fortunas más importantes del mundo. Así que le tendré en cuenta; al fin y al cabo, llevo 10 años diciendo que el futuro pasa por R y empiezo a cansarme: me estoy haciendo más dinosaurio día a día.

16 de julio de 2011 · rvaquerizo

Lectura de ficheros SAS7BDAT de SAS directamente con R

Un post de BIOSTATMATT que nos conduce a un código in R que nos permite leer datasets de SAS directamente con R sin necesidad de tener SAS. Un problema recurrente que abordaré con más detenimiento otro día [ahora me voy a pescar]. Aquí tenéis el enlace: http://biostatmatt.com/archives/1216 Solo tenéis que cargar la función read.sas7bdat que tenéis in este enlace. Y ya podéis leer conjuntos de datos SAS. Ejemplo: source("http://biostatmatt.com/R/sas7bdat.R") datos <- read.sas7bdat("D:\\raul\\Trabajo\\salida\\p03.sas7bdat") De momento lo he probado in conjuntos de datos SAS sin índices y sin comprimir; si encuentro algún problema, primero se lo reporto a la gente que ha creado esta función y más tarde os lo comento. Saludos.

19 de abril de 2011 · rvaquerizo

Truco 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(length(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 cuatro gráficos en una sola ventana y tendremos la figura con la que iniciamos esta entrada: ...

30 de enero de 2011 · rvaquerizo

Truco R. Eval, parse y paste para automatizar código

La función paste nos permite concatenar cadenas de texto con R: paste("Dato", 1:10, sep = "") parse recoge una expresión pero no la evalúa: parse(text = "sqrt(121)") Y, por último, eval evalúa una expresión: eval(parse(text = "sqrt(121)")) Interesantes funciones que nos pueden permitir automatizar códigos recursivos o códigos guardados como objetos en R. Imaginemos el siguiente ejemplo: # Creamos un data frame con 20 variables aleatorias Poisson ejemplo1 <- data.frame(replicate(20, rpois(20, 10))) # Automatizamos los nombres de las columnas nom <- paste("dato", 1:20, sep = "") names(ejemplo1) <- nom summary(ejemplo1) Hemos automatizado los 20 nombres de un data frame con datos aleatorios con una distribución de Poisson de media 10 creado con la función replicate. Ahora imaginemos que deseamos transformar en factor sólo aquellos elementos del data frame con un sufijo par (dato2, dato4…). Podemos crear una función o podemos generar las ejecuciones de código R del siguiente modo: ...

7 de enero de 2011 · rvaquerizo

Montemos un sistema de información en nuestro equipo (III)

Vamos a conectar R a nuestra BBDD PostgreSQL. Lo vamos a hacer vía ODBC con el paquete de R RODBC. [Inciso] Recordad que todo el trabajo lo estamos realizando bajo Windows. Además, trabajar con ODBC nos permitirá conectar nuestro PostgreSQL con Access o Excel. Aunque para este tipo de tarea recomiendo el uso del Data Integration de Pentaho. El primer paso será descargarnos de esta dirección los controladores ODBC para PostgreSQL que se adecúen con nuestro sistema operativo y nuestra versión de la base de datos. Tras instalarlos, ya podemos ir a las Herramientas Administrativas > Orígenes de Datos ODBC e introducimos un nuevo DSN de sistema y de usuario: ...

18 de diciembre de 2010 · rvaquerizo

Montemos un sistema de información en nuestro equipo (I)

Un poco de bricolaje. Se trata de crear un sistema de información sin coste y que nos permita almacenar nuestros datos con orden y coherencia, crear informes y realizar modelos matemáticos bajo Windows. Es perfectamente replicable para Linux. También estoy abierto a sugerencias, ya que tampoco soy ningún experto en el tema y podemos crear un debate interesante. El sistema que planteo se va a sustentar en tres pilares fundamentales que os podéis descargar de forma gratuita en los enlaces creados: ...

27 de noviembre de 2010 · rvaquerizo

Algunos temas de interés sobre R

No había escrito nada sobre ello porque muchos de mis lectores sé que están al corriente de la realización de las II Jornadas de R en castellano. Este año se organizan en la Escuela Politécnica de Mieres y tienen un par de talleres muy interesantes. A ver qué tal funciona la experiencia de los talleres; particularmente, sí me parece buena opción. Desgraciadamente, no contarán con mi presencia, el más ferviente defensor de R en los foros de dinosaurios gestores de la información. Mis deberes familiares (cada vez más numerosos) y un nuevo cambio en el rumbo de mi trayectoria profesional me impiden acudir. La siguiente edición será. ...

8 de noviembre de 2010 · rvaquerizo

Stadistical data warehouse del European Central Bank con R y los depósitos a pérdidas

Más ejemplos de uso del paquete de R XML. Vamos a leer datos del data warehouse del European Central Bank. Si dais una vuelta por la web tendréis interesantes datos económicos de los países de la Unión Europea. A modo de ejemplo, vamos a leer los datos de los tipos de interés medios a 12 meses que se están dando por los bancos en España y la evolución del Euribor a 6 meses. ...

29 de septiembre de 2010 · rvaquerizo

Trucos R. Leer archivos XML con R

Un truco de R práctico que busca la colaboración de los lectores para mejorarlo. Se trata de leer ficheros XML con R. Los más asiduos ya sabéis qué paquete voy a emplear: el XML. En los últimos tiempos, la sentencia require(XML) aparece al principio de casi todos mis códigos en el Tinn-R. El ejemplo que ilustrará el truco lee de la BBDD del Banco Mundial en español el indicador de emisiones de CO2 en toneladas por habitante y año. La sintaxis es de este modo: ...

8 de septiembre de 2010 · rvaquerizo

Trucos R. Establecer la configuración local de una fecha

Cuando manejamos datos, las fechas nos producen muchos quebraderos de cabeza; por ejemplo, cuando tenemos que transformar un carácter a fecha. En mi opinión, R es una de las herramientas más flexibles y rápidas para trabajar con fechas (claro que, acostumbrado a SAS, cualquier otra herramienta me parece perfecta). A lo que vamos, imaginemos la siguiente situación: # ?as.Date x <- c("1jan1960", "2jan1960", "31mar1960", "30jul1960") z <- as.Date(x, "%d%b%Y") z # [1] NA NA "1960-03-31" "1960-07-30" Se trata de transformar un texto a fecha en R. El formato del texto es día, mes en inglés y año con cuatro cifras. Para transformar a fecha tenemos la función as.Date, que recibe como parámetros el objeto y el formato de la fecha (el más habitual sería %d/%m/%Y para 10/09/1976). Para meses en formato nombre empleamos %b, pero en este caso "1jan1960" nos produce un valor perdido; sin embargo, "31mar1960" sí se transforma correctamente. ¿Por qué motivo sucede esto? ...

2 de septiembre de 2010 · rvaquerizo