La instalación básica de R viene equipada con muchas funciones, que nos permiten la importación de datos, realización de transformaciones, ajuste y evaluación de modelos estadísticos, representaciones gráficas, … Pero, además de las funciones «de serie» podemos añadir muchas más (miles). En cualquier momento podemos incorporar las nuevas funciones que necesitemos.
Un paquete (package) es una colección de funciones, datos y código R que se almacenan en una carpeta conforme a una estructura bien definida, fácilmente accesible para R.
En la web de R se puede consultar la lista de paquetes disponibles. Asimismo en la sección Task Views se puede consultar una lista de paquetes ordenada según áreas de aplicación.
Para ver la lista de los paquetes que actualmente tenemos instalados en nuestro ordenador únicamente tenemos que ejecutar el comando library() en la línea de comandos.
También podemos acceder a la lista clickando en la pestaña packages:
Es importante distinguir entre tener un paquete instalado en el ordenador y tenerlo cargado en memoria:
Tenerlo instalado en el ordenador significa simplemente que en algún momento lo hemos bajado de internet y lo hemos copiado en algún directorio en que R lo puede localizar.
Tenerlo cargado en memoria significa que durante nuestra sesión de trabajo R ha leído el contenido del paquete y ha incorporado las funciones que contiene a su espacio de trabajo, de tal forma que tales funciones pueden ya ser invocadas y ejecutadas.
Si observamos la imagen anterior veremos que en el listado de paquetes que presenta Rstudio, hay una casilla de verificación para cada paquete. Sólo los paquetes marcados están actualmente cargados en memoria. El resto está simplemente guardado en algún directorio, sin que sus funciones estén aún disponibles para ser ejecutadas desde R. Podemos ver un listado completo de los paquetes actualmente cargados en memoria con el comando search():
Si hacemos click en cualquiera de los paquetes del listado, aparecerá la ayuda del paquete en la pestaña Help.
Para instalar un paquete simplemente basta ejecutar el comando install.packages , con el nombre del paquete entre comillas como argumento. Por ejemplo, para instalar el paquete lattice escribimos:
install.packages(«lattice»)
Otra opción es hacer click en la pestaña install:
En ambos casos, R se conecta a alguno de los repositorios de CRAN (Comprehensive R Archive Network) en internet, descarga el archivo que contiene el paquete, lo descomprime y lo instala en nuestro directorio de paquetes por defecto.
Una vez descargado e instalado el paquete -sólo es necesario hacerlo una vez-, para utilizar las funciones que contiene debemos cargarlo en memoria mediante:
>library(«lattice»)
o, de manera equivalente, mediante:
>require(«lattice»)
También podemos hacerlo clickando en la casilla d verificación junto al nombre del paquete:
Si un paquete ha sido ya cargado con anterioridad, volver a ejecutar library(«nombre del paquete») o require(«nombre del paquete») no tiene ningún efecto, ya que R comprueba si el paquete está en memoria y en tal caso no vuelve a cargarlo.
Importante: Al clickar en la casilla de verificación junto al nombre del paquete, el comando library() se ejecuta en la consola, pero no se copia en el script (si estuviéramos escribiendo uno). Si estamos desarrollando un script que vamos a reutilizar posteriormente y en el cual vamos a utilizar funciones incluidas en alguna librería, es importante que el comando library(«nombre de la librería») quede escrito en el script, ya que si no es así, cuando ejecutemos ese archivo en una nueva sesión de R el programa no reconocerá las funciones por no haber cargado la librería previamente en memoria.
Diferencias entre library() y require()
La única diferencia entre estas dos funciones es que require() ha sido diseñado más específicamente para su uso dentro de funciones:
require(«paquete») devuelve TRUE o FALSE según el paquete esté o no instalado en el ordenador del usuario. Además, si existe lo carga en memoria, y si no existe lanza un “warning” advirtiendo de ello. De esta forma el programador de la función puede utilizar require() para comprobar si el usuario dispone o no de los paquetes necesarios para ejecutar el resto de comandos incluídos en la función, sin que esta se interrumpa. El uso típico de require es, pues, de la forma:
miFunction <- function(argumentos){
if (!require(‘paqueteNecesario’))
stop(«Debe instalar el paquete ‘paqueteNecesario’ para continuar»)
código-de-la-función
}
library(«paquete»), por el contrario, si detecta que el paquete solicitado no existe, lanza un error y detiene el proceso en marcha.