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},
##   }
## 

No hay comentarios: