lunes, 17 de septiembre de 2012

Paquetes XML y RCurl en Ubuntu

En mi última instalación de R en Ubuntu 12.04 LTS, al intentar instalar los paquetes XML y RCurl me he encontrado con problemas, que he solucionado de la siguiente forma:

Paquete XML

El problema era:

...
Cannot find xml2-config 
...

Solucionado con:

sudo apt-get install libxml2-dev 

Hay un paquete que se supone lo soluciona e instala, pero no me funcionó:

sudo apt-get install r-cran-xml 

Paquete RCurl

El problema era:

...
Cannot find curl-config 
...

Solucionado con:

sudo apt-get install libcurl4-openssl-dev 

lunes, 10 de septiembre de 2012

Más sobre librerías en R

Trans instalar una nueva versión de R, el primer paso debería ser decirle a R dónde instalar los nuevos paquetes. Yo lo hago así: en el directorio etc de la instalación de R, tenemos que editar el archivo Renviron.site. Aparecen ejemplos "parcheados" para Windows y Unix, en mi caso utilizo la siguiente (en Ubuntu):

R_LIBS=~/Programs/R/library

Así tengo todas las librerías centralizadas, y al cambiar de versión basta con actualizar las librerías con:

update.packages(checkBuilt = TRUE, ask = FALSE)

Instalar Eclipse manualmente en Ubuntu

Gracias a este esupendo vídeo de tabishfuhrer he descubierto cómo instalar Eclipse manualmente en Ubuntu. La instalación "automática" a través de Ubuntu Software Center, instala la versión 3.7, y a mí me interesaba instalar la versión 3.8, que es la última que está soportada por el plugin StatET para programación con R. Resumo debajo los pasos necesarios. Por cierto, el procedimiento sirve para cualquier otra aplicación, por ejemplo lo he utilizado también para instalar GAMS, con el que interactúo desde R para optimización.


  1. Descomprimir Eclipse y poner el contenido en nuestra carpeta de aplicaciones (por ejemplo, /home/emilio/Programs).
  2. Crear ejecutable en /usr/bin: sudo touch /usr/bin/eclipse
  3. Dar permisos al ejecutable: sudo chmod 755 /usr/bin/eclipse
  4. Editar el ejecutable: sudo gedit /usr/bin/eclipse:
#!/bin/bash
export ECLIPSE_HOME="/home/emilio/Programs/eclipse"
$ECLIPSE_HOME/eclipse $*

  1. Crear link: sudo ln -s /usr/bin/eclipse /bin/eclipse
  2. Crear aplicación en el dashboard: sudo gedit /usr/share/applications/eclipse.desktop:
[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse IDE
Exec=eclipse
Icon=/home/emilio/Programs/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=GNOME;Application;Development;
StartupNotify=true


Ahora ya tenemos el icono en el Dashboard y podemos abrir Eclipse como cualquier otro programa.

Actualización:
En Ubuntu 13.10 es necesario cambiar la línea "Exec" del fichero anterior:
Exec=env UBUNTU_MENUPROXY= eclipse


Gracias a este hilo en askubuntu.com:

http://askubuntu.com/questions/361040/eclipse-menus-are-cut-off-or-doesnt-show#363237

domingo, 8 de julio de 2012

Librerías en R


Instalar librerías (paquetes) en R es muy fácil, una vez sabemos su nombre, basta con introducir la siguiente orden en R:

install.packages("SixSigma")

Y para poder utilizar las funciones y datos de la librería, la cargamos en el espacio de trabajo de R:

library("SixSigma")

Pero una cosa que me ha traído un poco de cabeza es dónde se instalan, cómo gestionarlas y, sobre todo, cómo mantenerlas cuando se actualiza a una nueva version de R. Pues bien, para ver dónde están las librerías instaladas en el equipo podemos hacer lo siguiente:

.libPaths()
## [1] "C:/R/library"          "C:/R/R-2.15.1/library"

Podemos añadir nuevas librerías. Por ejemplo en Windows, añadiendo una variable de entorno en las propiedades avanzadas del sistema, como se ve en la imagen:


Una vez tenemos esta variable R_LIBS, los nuevos paquetes que instalemos lo harán en esta librería. Podemos especificar en qué librería queremos que se instale mediante el argumento lib en la función install.packages. En realidad, el valor por defecto es el primer elmento del vector que obtenemos con .libPaths(). Para cada paquete, podemos decidir en cuál de nuestras librerías lo instalamos.

Cuando actualicemos a una nueva versión de R, si tenemos configurada la librería correctamente, los paquetes están disponibles para la nueva versión. No obstante, tendremos que actualizar también los paquetes a la última versión, ya que suele haber cambios en los paquetes con actualización de R, al menos en los que son mantenidos regularmente:

update.packages(checkBuilt = TRUE, ask = FALSE)

Por último, una cosa a tener en cuenta es qué versión de cada paquete tener en cada versión de R. Por ejemplo, la versión 0.6.1 del paquete SixSigma incluye una función nueva que el R-core team ha incluido para evitar mensajes al comprobar los nuevos o actualizados paquetes (globalVariables). Esto significa que en las versiones anteriores a la 2.15.1, el paquete SixSigma 0.6.1 no funcionará, por lo que tendremos que manejar esta situación de algún modo. Igualmente, se puede dar que un paquete que usamos, no funcione correctamente con la última versión de R, y tengamos que utilizar una anterior. Todo esto es un poco más enrevesado y hay varias opciones, por lo que lo dejo para otra ocasión. En la ayuda de ?.libPaths hay información sobre este tema.

Por cierto, yo utilizo Eclipse con el plugin statET, y lógicamente aquí hay que tener bien configuradas las librerías:


Para esta entrada por primera vez he utilizado el paquete knitr:

citation("knitr")
## 
## To cite package 'knitr' in publications use:
## 
##   Yihui Xie (2012). knitr: A general-purpose package for dynamic
##   report generation in R. R package version 0.6.3.
##   http://CRAN.R-project.org/package=knitr
## 
## A BibTeX entry for LaTeX users is
## 
##   @Manual{,
##     title = {knitr: A general-purpose package for dynamic report generation in R},
##     author = {Yihui Xie},
##     year = {2012},
##     note = {R package version 0.6.3},
##     url = {http://CRAN.R-project.org/package=knitr},
##   }
## 

martes, 3 de julio de 2012

Año Internacional de la Estadística (Statistics2013)

The International Year of Statistics (Statistics2013)
El próximo año estamos de celebración. En todo el mundo se celebrará y reconocerá las contribuciones de la Estadística. Se promocionará la importancia de la Estadística  a una amplia gama de destinatarios: comunidad científica, usarios de datos del sector público y privado, medios de comunicación, legisladores, trabajadores, estudiantes y público en general (vamos, a todo el mundo). Toda la información está disponible en la web http://www.statistics2013.org.

Hay una lista de actividades alrededor del mundo relacionadas con la estadística, que imagino irá creciendo en los próximos meses. Se pueden añadir actividades sin que ello comporte compromiso alguno. Es una forma de indicar que se apoyan los objetivos del Año Internacional de la Estadística. Pronto aparecerá el próximo Congreso Internacional de Usuarios de R (useR! 2013) que se celebrará en España en este año tan especial.

Ojalá esta celebración sirva para que se conozca mejor la labor de los estadísticos, y  las contribuciones tanto a la vida cotidiana como a la investigación científica.

miércoles, 4 de enero de 2012

Instalar R en Ubuntu desde las fuentes

La instalación automática de software en Ubuntu está muy bien para algunas cosas. Pero cuando quieres disponer de varias versiones de un mismo programa, no es una buena idea.

Utilizo ECLIPSE con el plugin StatET para mi desarrollo en R y producción de publicaciones (artículos, libros, presentaciones) con Sweave y LaTeX. Me gusta  tener instaladas varias configuraciones por varios motivos: asegurarme que el paquete que mantengo (SixSigma) funciona con la última versión aparecida, asegurarme de que las últimas versiones del paquete funcionan en (al menos) la versión anterior a la última de R, o utilizar paquetes que no funcionan, o no lo hacen apropiadamente en las últimas versiones de R (por ejemplo, odfWeave me dio muchos problemas en R-2.14.0 pero me funcionó sin problemas en R-2.12.0).

Aunque en Windows la tarea me resultaba bastante fácil (bastaba con cambiar la ruta de instalación en el Wizard), en Ubuntu no he encontrado una forma rápida de hacerlo (ni siquiera sé si la hay) y sigo las instrucciones paso a paso de la documentación de R. Aunque no soy experto en Linux, tengo que reconocer que tener controlado cada paso y saber lo que estás haciendo es reconfortante.

Yo me instalo las versiones de R que necesito en la home, dentro de una carpeta a la que llamo R, de forma que al hacer copia de seguridad de la carpeta, estoy también haciéndola de mi configuración de R. De paso sé exactamente dónde buscar las cosas (todavía no domino la estructura de carpetas de Linux). Así, en mi home tengo una carpeta R con los directorios de las distintas versiones de R. En vez de la home, ahora utilizo /usr/R. Tras descargar el fichero con las fuentes desde CRAN (por ejemplo en el directorio sources dentro de /usr/R), los pasos que sigo para la configuración que necesito son los siguientes:

sudo tar xvfz R-3.0.1.tar.gz
sudo cd R-2.14.2
sudo ./configure --enable-R-shlib
sudo make
sudo make check
sudo make check-devel

Durante la instalación, se me han presentado problemas de paquetes necesarios, que he resuelto instalándolos:

sudo apt-get install gfortran
sudo apt-get install libreadline6-dev
sudo apt-get install xorg-dev
sudo apt-get install openjdk-7-jdk


Ya solo me falta configurar en ECLIPSE el entorno R de la nueva instalación, y la nueva "Run configuration" para correr y/o depurar los programas en R. Esto ya lo explicó el blog amigo Rparatodos. Eso sí, antes de ejecutar la consola desde Eclipse, tenemos que instalar el packete rj en la versión recién instalada de R, ver el post acerca de la ubicación de librerías:

/usr/R/R-3.0.1/bin/R

> install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-1.1")



martes, 1 de noviembre de 2011

R 2.14.0 Funcionando en Arquitect

Un día después de que Peter Dalgard anunciara la publicación de la versión 2.14.0 de R, ya la tengo a pleno rendimiento en mi equipo. Los binarios para Windows están disponibles en CRAN, y la instalación no tiene ninguna complicación, como en versiones anteriores. Personalmente, lo único que hago es cambiar el directorio de instalación a C:\R, donde tengo todas las versiones y el resto de software que necesito para utilizar R.

Tengo que decir que no sólo utilizo R para realizar análisis estadísticos. También estoy desarrollando el paquete SixSigma (disponible en CRAN) con funciones para aplicar esta metodología de mejora de la calidad. No sólo eso: Soy coautor del libro Six Sigma with R, de próxima aparición en la serie Use R! de Springer. Y estoy escribiendo el libro con R.

Como podéis imaginar, el libro contiene cantidad de código, resultados y gráficos en R. Las plantillas de Springer están en LaTex. Por tanto la mejor forma de producir el libro es utilizar archivos archivos *.Rnw y Sweave. Además de tener el libro en cada compilación en el formato adecuado para la editorial, aprovecho todas las ventajas de la "Investigación reproducible". Si tengo que hacer algún cambio en cualquier pedazo de código (chunk) no tengo que preocuparme de volver a maquetar pues los resultados se vuelven a generar en el propio libro automáticamente.

Pero todo esto es farragoso si no contamos con un entorno donde escribir R y LaTeX de forma productiva. Aquí es donde tengo que agradecer a Tobias Verbeke (OpenAnalytics) y Stephan Wahlbrink (WalWare) su trabajo con Architect y StatET respectivamente. Implementado en Eclipse, y con un aprendizaje muy rápido, para mí es la mejor opción para ganar en productividad (y lo digo después de haber utilizado otras opciones como Emacs). En todo caso, la grandeza del software libre es que cada uno puede elegir lo que más le convenga.

Mi punto de entrada hasta llegar a estas conclusiones fue una entrada en R-Bloggers, para quien se anime:
http://www.r-bloggers.com/getting-started-with-sweave-r-latex-eclipse-statet-texlipse/

NOTA: aunque Architect está disponible como instalable para Windows, la implementación de StatET en Linux no tiene dificultad siguiendo las instrucciones de instalación.