2.1 Instalando paquetes en R.

Las librerías en R son paquetes que contienen funciones que sirven para llevar a cabos tareas específicas, y algunos tienen datos que se pueden usar para llevar a cabo los ejemplos de las funciones incluidas en el paquete (esto se cargan en R usando el comando data). Cuando inicias una sesión de R, algunos paquetes se cargan por omisión, de forma que sus funciones estén disponibles para su uso en la sesión actual. Puedes saber que paquetes se cargan por omisión usando getOption("defaultPackages").

Es casi imposible que no utilices otros paquetes más allá de los paquetes por omisión cuando estés realizando algún trabajo en R. Es bueno siempre llevar un registro de los paquetes que utilizas durante una sesión de R (una de las máximas de la programación literaria). Para poder ver que paquetes están cargados en la sesión actual puedes utilizar: print(.packages()). Este comando muestra todos los paquetes cargados en la sesión actual.

Ahora, para poder cargar y usar los paquetes, estos deben estar disponibles en tu computadora para la sesión de R. Instalar paquetes en R es muy sencillo: ellos se pueden descargar e instalar desde un repositorio. Se utiliza la función install.packages para instalar un paquete desde el CRAN (necesitas tener conexión a Internet para poder instalar los paquetes). Puedes saber donde los paquetes son instalados utilizando .libPaths(), que te muestra la dirección del directorio en tu PC o laptop donde se encuentran instalados los paquetes.

Si no puedes tener acceso a Internet en tu computadora personal o laptop, puedes instalar los paquetes desde una dirección local en tu computadora. Para esto, debes descargar los paquetes directamente desde el CRAN (archivos comprimidos con extensión .tar.gz) desde una computadora o laptop con conexión a Internet. Luego almacenarlos en un directorio conocido en tu computadora e instalar el paquete usando12:

    install.packages("ruta/donde/colocaste/paquete.tar.gz", 
      repos = NULL,
      type = "source")

Una vez un paquete esta instalado puedes utilizar la función library para cargar el paquete. Por ejemplo, más adelante utilizaremos el paquete readxl que contiene funciones para leer y escribir archivos de Excel desde R (existen otros paquetes con estas funcionalidades, pero readxl tiene la ventaja de que los datos son cargados en forma de una estructura de datos llamada tibble, la cual es particularmente útil para trabajar en el tidyverso13). Es posible instalar este paquete utilizando intsall.packages("readxl") (las comillas son obligatorias)14 y una vez instalado, cargarlo en la sesión actual usando library("readxl").

R siempre esta mejorando! Como consecuencia, de tanto en tanto tendras que actualizar la version que tienes a una version mas reciente, o actualizar los paquetes de forma que puedas seguir usandolos. Para poder mantenerte al dia, siempre puedes verificar que paqutes no estan actualizados utilizando la funcion old.packages(), y puedes actualizarlos usando la funcion update.packages. Si el paquete ya lo has cargado previamente a la sesion de R usando library, tienes removerlo de la sesion actual par luego actualizarlo. Para ello puedes usar:

    detach("package:nombre_del_paquete", unload = TRUE)

o puedes utilizar la funcion unloadNamespace como:

    unloadNamespace("nombre_del_paquete")

En ambos casos las comillas son obligatorias, y el uso de detach requiere de forma obligatoria el uso de paquete: antes del nombre del paquete. De hecho, unloadNamespace es llamado de forma implicita cuando se usa el argumento unload = TRUE en la llamada a detach. Un namespace, o espacio nombrado no es mas que un espacio en el cual residen objetos (ya sean datos o funciones) que pertenecen a un entorno particular, con nombres unicos que los definen.

En cuanto a R, este se puede actualizar a su version mas reciente, pero es dependiente del sistema. La forma mas sencilla segun el FAQ es simplemente desinstalar la version actual de R, y luego instalar la nueva (previamente descargada). Sin embargo, en Windows, es posible utilizar el paquete installr para actualizar R desde dentro de R. En sistema Linux, se puede hacer via terminal por medio del uso de apt-get.

2.1.1 Representación de objetos y el uso de comillas.

Antes, aprendiste sobre el proceso de declarar una variable en R. Aunque lo comparamos con la operación matemática de asignar datos a una variable, declarar una variable o un objeto en R es distinto del significado matemático de asignación. Cuando se declara un variable lo que se esta haciendo es crear un nuevo objeto en R que representa al dato que esta almacenando. El nombre del objeto sirve como una referencia (o apuntador) a una dirección de memoria en el disco duro en la que se almacena la información que se le esta asignando al objeto. Esto es importante que lo entiendas: la distinción entre lo que es el objeto y la información o datos.

Un caso donde esto puede causar problemas es en la llamada a funciones. Ya hemos hablado acerca de las cadenas de caracteres: son una secuencia de palabras o símbolos encerrados por comillas simples o dobles. En la llamada a la función install.packages dijimos que las comillas son obligatorias, de tal forma que la función entiende que lo que le pasas es una cadena de caracteres que especifica el nombre del paquete que quieres cargar. Ahora, ¿Qué sucedería si olvidas colocar las comillas? (¡no te quedes aquí! Ve a la consola a probar). Bueno, de entrada, R te dirá que ocurrió un error, o puede que no, dependiendo de si el objeto que pasas existe y almacena una cadena de caracteres.

Cuando le pasas un objeto a una función (no usas las comillas), R busca un objeto entre los que están presentes en la sesión actual (puedes saber que objetos están en la sesión actual usando ls()) y le pasa a la función el contenido o información que ese objeto esta almacenando. Por ejemplo, supongamos que existe en tu sesión actual un objeto llamado my_obj el cual tiene almacenado la cadena de caracteres "Radical". Cuando haces un llamado a install.packages usando el nombre del objeto (es decir, install.packages(my_obj)), lo que en realidad sucede es que estas llamando a la función con la cadena de caracteres almacenada en ese objeto. Es decir, la llamada anterior R la interpreta como install.packages("Radical"). Es importante que entiendas la forma en que funciona el paso de argumentos porque puede generar errores inesperados.

Pon en práctica lo que aprendiste.

  1. Para la siguiente parte necesitaras instalar el paquete rmarkdown. Instálalo usando lo aprendido en esta sección.
  2. Carga el paquete car en la sesión de R y luego la base de datos mtcars usando la función data. Revisa la base de datos llamándola en consola (mtcars es una base de datos que generalmente es utilizada por los principiantes para aprender a programar en R).

  1. Ve la documentación para intsall.packages para más información. En Linux, la instalación de paquetes se puede llevar a cabo directamente desde la terminal sin necesidad de iniciar una sesión en R escribiendo el comando R CMD INSTALL ruta/donde/colocaste/paquete.tar.gz.↩︎

  2. En ciencias de Datos (Data Science) con R, el tidyverse consiste de un conjunto de paquetes especializados para el análisis exploratorio e inferencia estadística.↩︎

  3. Puede suceder que la instalación falle si la librería depende de otros paquetes para poder instalarse. Un paquete del cual depende una librería se llama dependencia. En ese caso, coloca el argumento dependencies = TRUE en la llamada a la función. Esto descargara e instalara todas los paquetes de los que depende la librería que quieres instalar y luego instalará el paquete deseado.↩︎