4 PAQUETES

R es un ambiente de trabajo extensible por módulos. Hay miles de módulos especializados en realizar diferentes tareas. A estos módulos se les denomina paquetes (packages) y pueden obtenerse desde cualquiera de los servidores de la CRAN. Los paquetes contienen una o más funciones con su correspondiente documentación; a menudo también contienen bases de datos.

Cuando se instala R por primera vez, se incluyen siete paquetes básicos: base, stats, graphics, grDevices, methods, utils y datasets. El usuario puede instalar todos los paquetes adicionales que requiera. A pesar del gran potencial de R para ejecutar un sinfín de procesos, el programa es muy liviano y eficiente; esto se debe al hecho de que R no carga simultáneamente toda su artillería, sino únicamente los paquetes requeridos para una aplicación determinada. Para usar un paquete es necesario instalarlo y cargarlo en memoria. Estos dos pasos se diferencian y detallan a continuación.

4.1 Instalación de paquetes

Hay varias formas de instalar un paquete. Las dos más usuales son desde la interfaz y mediante el uso de un archivo comprimido, que se baja de algún repositorio. Esta última opción resulta útil para bajar el paquete en un archivo comprimido que puede usarse para la posterior instalación en cualquier equipo, sin necesidad de conexión a Internet. Por su parte, la instalación directa desde la interfaz, que es la más usual, requiere conexión a Internet.

  1. A través de la CRAN. Se ingresa por la página principal del proyecto R, se sigue el vínculo CRAN y se elige un servidor o mirror. Una vez seleccionado el servidor, se sigue el vínculo contributed extension packages. Puede buscarse el paquete a través de una tabla organizada por fecha de publicación o a través de una tabla organizada en orden alfabético. A no ser que se estén buscando los paquetes más recientemente publicados, será más fácil encontrar un paquete a través de la tabla organizada en orden alfabético12. Cuando se usa esta vía se elige el correspondiente archivo r-release. Una vez se haya bajado el archivo zip comprimido, se procede a la instalación, ingresando por el menú “Tools”, se elige “Install packages” y, en el campo “Install from”, se elige “Package Archive File”. Esta forma de instalación tiene la desventaja de exigirle al usuario la instalación individual de cada uno de los paquetes de los que dependa el paquete principal que vaya a instalarse. Ingresando a través de https://cran.microsoft.com/, búsquese, por ejemplo, el paquete homals. Obsérvese que este paquete depende de los paquetes ape y scatterplot3d. Por tanto, si un usuario desea usar el paquete homals, con todas sus funcionalidades, deberá instalar adicionalmente los otros dos paquetes.

  2. Desde la interfaz de RStudio (recomendado). Es posible instalar los paquetes directamente desde la interfaz de RStudio, sin necesidad de realizar ninguna descarga previa. Para este tipo de instalación, se requiere conexión a Internet. Esta modalidad tiene la ventaja de instalar el paquete principal junto con todos los otros paquetes de los cuales dependa. Así, por ejemplo, si se realiza la instalación del paquete homals, por esta vía, también se instalarán los paquetes ape y scatterplot3d, sin necesidad de intervención por parte del usuario. Para realizar la instalación, se ingresa por el menú “Tools”, se elige la opción “Install packages” y en la ventana que aparece se escribe el nombre del paquete que se desea instalar, manteniendo activa la casilla de verificación “Install dependencies”, para que se instalen los paquetes secundarios de los que dependa el paquete principal13. Seguidamente se procede con la instalación. En RStudio puede accederse igualmente a la ventana de instalación de paquetes a través del botón Install R packages, que se ubica en la pestaña “Packages”, la cual aparece por defecto en el panel inferior derecho.

4.2 Carga de paquetes

El hecho de haber instalado un paquete no significa que el mismo se encuentre siempre cargado en memoria y listo para ser usado. Aunque a primera vista esto podría parecer una desventaja, en realidad constituye una ventaja, por cuanto permite que R se mantenga liviano al cargar en memoria únicamente lo que va a ser usado en un momento determinado. Tal y como se indicaba anteriormente, hay siete paquetes básicos que se cargan cada vez que se inicia el programa: base, stats, graphics, grDevices, methods, utils y datasets. Estos vienen preinstalados con el programa y no requieren ningún tipo de carga o intervención por parte del usuario. El uso de cualquier otro paquete en una sesión de trabajo específica requerirá que este se cargue en memoria. Para cargar un paquete es necesario que este haya sido instalado previamente. La instalación se realiza una sola vez (otro asunto son las actualizaciones (cf. sección 5.3)); la carga debe realizarse en cada sesión de trabajo en la que vaya a usarse el paquete.

Para cargar un paquete desde RStudio, se elige la pestaña “Packages” de la ventana inferior derecha (o se presiona Ctrl + 7). Allí se hace clic en el paquete que se desee cargar. Si se selecciona, por ejemplo, homals, automáticamente quedarán seleccionados los paquetes que dependan de este (ape y scatterplot3d). No obstante, la manera más común de cargar un paquete, junto con todos los otros paquetes de los que dependa, es usando las funciones library(paquete) o require(paquete). Si el paquete que se pretende cargar está instalado, es indiferente usar cualquiera de las dos funciones, pues ambas realizan exactamente la misma tarea: cargan el paquete en memoria, dejándolo disponible para su uso. Así, para cargar, por ejemplo, el paquete homals, junto con sus paquetes anexos, puede usarse función library(homals) o require(homals).

En caso de que el paquete no hubiera sido instalado previamente, el comportamiento de ambas funciones diferiría: la función library(paquete) generaría un error, mientras que la función require(paquete) generaría una advertencia y un marcador lógico invisible falso, lo que facilitaría resolver dicha contingencia en un script, a través de la función install.packages (cf. sección 20.4).

Todas las funciones en R forman parte de algún paquete que debe estar cargado para poder usarse en una sesión de trabajo. Si, por ejemplo, en un artículo se dijera que se realizó un análisis de correspondencias múltiples, mediante el uso de la función mjca, sería necesario averiguar en cuál paquete está contenida dicha función (normalmente cuando se hace referencia a una función se dice a cuál paquete pertenece). En este caso, se trata de una función que forma parte del paquete ca, el cual deberá cargarse (tras haber sido instalado previamente) para poder ser usado. La manera usual de referenciar una función con el paquete del cual forma parte es escribiendo el nombre de la función, sucedido por el nombre del paquete, entre llaves. Así, para referenciar, por ejemplo, la función mjca, que forma parte del paquete ca, se escribe mjca{ca}.

La función search() muestra los paquetes cargados en memoria en una sesión de trabajo particular. La función library() muestra todos los paquetes instalados disponibles, cargados o no. Tales paquetes también se muestran al seleccionar la pestaña “Packages” en el panel inferior derecho de RStudio.

Una vez cargado un paquete en memoria, puede accederse a cualquiera de las funciones contenidas en el mismo. El paquete permanecerá cargado durante la sesión de trabajo o hasta que se descargue explícitamente. Aunque no es usual descargar un paquete de memoria, eventualmente podría requerirse para evitar conflictos con funciones de algún otro paquete. Para tal efecto, se utiliza la función detach, con el argumento package:paquete. Así, por ejemplo, para descargar de memoria el paquete phia, se escribe el comando: detach(package:phia). Es importante tener presente que mediante este procedimiento únicamente se descarga de memoria el paquete relacionado en el argumento, sin que se descarguen los demás paquetes que hayan podido cargarse por depender del paquete principal. Así, al usar, por ejemplo, el comando library(phia), además de cargarse el paquete phia, también se carga de manera automática el paquete car; no obstante, al usar el comando: detach(package:phia) solo se descarga el paquete phia, manteniéndose car.

El operador dos puntos dobles (::) permite realizar una carga temporal de un paquete para un único uso de una función particular. Supóngase que se desea usar la función interactionMeans contenida en el paquete phia, pero no se quiere mantener cargado en memoria el paquete phia. Una opción consiste en cargar phia, invocar la función interactionMeans y descargar phia (¡3 instrucciones!).

library(phia)
interactionMeans(argumentos)
detach(package:phia)

Mediante el operador dos puntos dobles, esto puede realizarse en una única instrucción:

phia::interactionMeans(argumentos)

Esta instrucción carga de manera temporal el paquete phia, permitiendo una única invocación de la función interactionMeans.

4.3 Lista de paquetes por grupos temáticos

En adición a la búsqueda de paquetes ordenados alfabéticamente o por fecha de publicación, se dispone de una búsqueda temática, a la cual puede accederse mediante el vínculo CRAN Task Views, que aparece debajo de los vínculos que permiten las otras dos modalidades de búsqueda.

En lugar de explorar los más de 20000 paquetes disponibles, en búsqueda de alguno(s) que pueda(n) ser de utilidad para una labor específica, en este módulo se presenta unos pocos ejes temáticos14, en cada uno de los cuales se reseñan los paquetes más relevantes dentro de la temática de interés.