Si bien R cuenta con librerías que resuelven muchas de las necesidades en un análisis, la cantidad de librerías que se estan desarrollando constantemente dotan a este lenguaje de una gran versatilidad.

Es mas, algunas de estas librerías cuentan con algoritmos derivados de artículos especializados y que rápidamente fueron adaptados al lenguaje. Otras librerías facilitan una tarea compleja que de otra forma deberíamos de programar nosotros, evitando el problema de errores en programación. Incluso algunos paquetes pueden implementar librerías escritas en C y Rust que son mas rápidas y usan la paralelización para acelerar los cálculos.

Por lo tanto es indispensable conocer el proceso de instalación y carga de librerías.

Instalación de librerías CRAN

La mayoría de librerías se encuentran disponibles en los repositorios oficiales de R. Y el mismo R se encarga de descargar e instalar las librerias. Ocasionalmente nos pedira seleccionar el país de donde se deben descargar los paquetes. Si bien lo óptimo es usar el país propio o el mas cercano, en realidad no hay diferencia sobre la selección.

El comando para instalar una librería es install.packages() al cual se le pasa como argumento el nombre de la librería como cadena de texto o sea entre comillas.

install.packages("ggplot2")

Esto iniciara la descarga inmediatamente, si es que ya seleccionamos previamente un país de origen, de lo contrario nos pide seleccionar una fuente de descarga para luego comenzar la misma.

Una vez descargado instala el paquete en un directorio llamado R en Linux y Mac del home del usuario, mientras que en windows se usa el directorio Documents del usuario.

En caso de tener permisos de administrador, es posible guardar los paquetes en un directorio del sistema que los centralize. Sin embargo cuando un usuario instale un paquete lo hara en su directorio.

Una vez instalado el paquete, esta disponible para su carga y solo hasta que se cargue se pueden usar sus funciones. Esto se hace con el comando library():

library(ggplot2)

Instalación Avanzada

En ocasiones existen librerías que no se encuentran en los repositorios CRAN y se tienen el código fuente de la librería, por ejemplo del repositorio github del autor. Estas librerías que pueden ser o muy nuevas, estar en beta o en vías de integrarse a CRAN requieren en ocasiones ser compiladas por lo que necesitamos algunas herramientas para facilitar la compilación.

Nos concentraremos en el uso de librerías de github ya que intentar conciliar todas las metodologías de instalación a partir de código fuente se sale de los objetivos de este texto.

Por lo tanto para instalar librerías desde github primero necesitamos las herramientas para compilar e instalar, mismas que se encuentran en el paquete devtools.

Instalamos devtools:

install.packages("devtools")

Cargamos la librería:

library(devtools)

Y luego usando el usuario y nombre de la librería podemos instalarlo, estos se encuentran en la dirección de github de la librería:

install.github("usuario/libreria")

NOTA: Debemos tener cuidado con las versiones que usemos, algunas librerias se encuentran en desarrollo constante por lo que pueden llegar a cambiar nombres de argumentos o funciones y nuestros scripts podrían dejar de funcionar. Otro problema común radica en la falta de compatibilidad de la librería que queremos usar y el R que tenemos instalado.

Actualización

Podemos actualizar los paquetes con el comando update.packages() que conforme va encontrando paquetes con actualización nos pide aprobación. Una versión mucho menos interactiva y que ademas instala los paquetes sugeridos es esta:

update.packages(ask = FALSE, dependencies = c('Suggests'))

Vale la pena actualizar los paquetes, sobre todo si alguna de las funciones esta presente solo en las últimas versiones. Sin embargo debemos tener cuidado a posibles incompatibilidades derivadas de estas actualizaciones.

LS0tCnRpdGxlOiAiTWFuZWpvIGRlIFBhcXVldGVzIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OgogICAgICBjb2xsYXBzZWQ6IGZhbHNlCiAgICAgIHNtb290aF9zY3JvbGw6IGZhbHNlCiAgICB0aGVtZTogc2FuZHN0b25lCiAgICBpbmNsdWRlOgogICAgICBhZnRlcl9ib2R5OiBkaXNxdXNfaW5zZXJ0Lmh0bWwKICAgIGNzczogY3VzdG9tLmNzcwotLS0KClNpIGJpZW4gUiBjdWVudGEgY29uIGxpYnJlcsOtYXMgcXVlIHJlc3VlbHZlbiBtdWNoYXMgZGUgbGFzIG5lY2VzaWRhZGVzIGVuIHVuIGFuw6FsaXNpcywgbGEgY2FudGlkYWQgZGUgbGlicmVyw61hcyBxdWUgc2UKZXN0YW4gZGVzYXJyb2xsYW5kbyBjb25zdGFudGVtZW50ZSBkb3RhbiBhIGVzdGUgbGVuZ3VhamUgZGUgdW5hIGdyYW4gdmVyc2F0aWxpZGFkLgoKRXMgbWFzLCBhbGd1bmFzIGRlIGVzdGFzIGxpYnJlcsOtYXMgY3VlbnRhbiBjb24gYWxnb3JpdG1vcyBkZXJpdmFkb3MgZGUgYXJ0w61jdWxvcyBlc3BlY2lhbGl6YWRvcyB5IHF1ZSByw6FwaWRhbWVudGUgZnVlcm9uCmFkYXB0YWRvcyBhbCBsZW5ndWFqZS4gT3RyYXMgbGlicmVyw61hcyBmYWNpbGl0YW4gdW5hIHRhcmVhIGNvbXBsZWphIHF1ZSBkZSBvdHJhIGZvcm1hIGRlYmVyw61hbW9zIGRlIHByb2dyYW1hciBub3NvdHJvcywgCmV2aXRhbmRvIGVsIHByb2JsZW1hIGRlIGVycm9yZXMgZW4gcHJvZ3JhbWFjacOzbi4gSW5jbHVzbyBhbGd1bm9zIHBhcXVldGVzIHB1ZWRlbiBpbXBsZW1lbnRhciBsaWJyZXLDrWFzIGVzY3JpdGFzIGVuIAoqKkMqKiB5ICoqUnVzdCoqIHF1ZSBzb24gbWFzIHLDoXBpZGFzIHkgdXNhbiBsYSBwYXJhbGVsaXphY2nDs24gcGFyYSBhY2VsZXJhciBsb3MgY8OhbGN1bG9zLgoKUG9yIGxvIHRhbnRvIGVzIGluZGlzcGVuc2FibGUgY29ub2NlciBlbCBwcm9jZXNvIGRlIGluc3RhbGFjacOzbiB5IGNhcmdhIGRlIGxpYnJlcsOtYXMuCgojIyBJbnN0YWxhY2nDs24gZGUgbGlicmVyw61hcyBDUkFOCgpMYSBtYXlvcsOtYSBkZSBsaWJyZXLDrWFzIHNlIGVuY3VlbnRyYW4gZGlzcG9uaWJsZXMgZW4gbG9zIHJlcG9zaXRvcmlvcyBvZmljaWFsZXMgZGUgUi4gWSBlbCBtaXNtbyBSIHNlIGVuY2FyZ2EgZGUgZGVzY2FyZ2FyCmUgaW5zdGFsYXIgbGFzIGxpYnJlcmlhcy4gT2Nhc2lvbmFsbWVudGUgbm9zIHBlZGlyYSBzZWxlY2Npb25hciBlbCBwYcOtcyBkZSBkb25kZSBzZSBkZWJlbiBkZXNjYXJnYXIgbG9zIHBhcXVldGVzLiBTaSBiaWVuIApsbyDDs3B0aW1vIGVzIHVzYXIgZWwgcGHDrXMgcHJvcGlvIG8gZWwgbWFzIGNlcmNhbm8sIGVuIHJlYWxpZGFkIG5vIGhheSBkaWZlcmVuY2lhIHNvYnJlIGxhIHNlbGVjY2nDs24uCgpFbCBjb21hbmRvIHBhcmEgaW5zdGFsYXIgdW5hIGxpYnJlcsOtYSBlcyBgaW5zdGFsbC5wYWNrYWdlcygpYCBhbCBjdWFsIHNlIGxlIHBhc2EgY29tbyBhcmd1bWVudG8gZWwgbm9tYnJlIGRlIGxhIGxpYnJlcsOtYQpjb21vIGNhZGVuYSBkZSB0ZXh0byBvIHNlYSBlbnRyZSBjb21pbGxhcy4KCmBgYHtyIGV2YWw9RkFMU0V9Cmluc3RhbGwucGFja2FnZXMoImdncGxvdDIiKQpgYGAKCkVzdG8gaW5pY2lhcmEgbGEgZGVzY2FyZ2EgaW5tZWRpYXRhbWVudGUsIHNpIGVzIHF1ZSB5YSBzZWxlY2Npb25hbW9zIHByZXZpYW1lbnRlIHVuIHBhw61zIGRlIG9yaWdlbiwgZGUgbG8gY29udHJhcmlvIApub3MgcGlkZSBzZWxlY2Npb25hciB1bmEgZnVlbnRlIGRlIGRlc2NhcmdhIHBhcmEgbHVlZ28gY29tZW56YXIgbGEgbWlzbWEuCgpVbmEgdmV6IGRlc2NhcmdhZG8gaW5zdGFsYSBlbCBwYXF1ZXRlIGVuIHVuIGRpcmVjdG9yaW8gbGxhbWFkbyBgUmAgZW4gKipMaW51eCoqIHkgKipNYWMqKiBkZWwgaG9tZSBkZWwgdXN1YXJpbywgbWllbnRyYXMgCnF1ZSBlbiB3aW5kb3dzICBzZSB1c2EgZWwgZGlyZWN0b3JpbyAqKkRvY3VtZW50cyoqIGRlbCB1c3VhcmlvLgoKRW4gY2FzbyBkZSB0ZW5lciBwZXJtaXNvcyBkZSBhZG1pbmlzdHJhZG9yLCBlcyBwb3NpYmxlIGd1YXJkYXIgbG9zIHBhcXVldGVzIGVuIHVuIGRpcmVjdG9yaW8gZGVsIHNpc3RlbWEgcXVlIGxvcyBjZW50cmFsaXplLgpTaW4gZW1iYXJnbyBjdWFuZG8gdW4gdXN1YXJpbyBpbnN0YWxlIHVuIHBhcXVldGUgbG8gaGFyYSBlbiBzdSBkaXJlY3RvcmlvLgoKVW5hIHZleiBpbnN0YWxhZG8gZWwgcGFxdWV0ZSwgZXN0YSBkaXNwb25pYmxlIHBhcmEgc3UgKipjYXJnYSoqIHkgc29sbyBoYXN0YSBxdWUgc2UgY2FyZ3VlIHNlIHB1ZWRlbiB1c2FyIHN1cyBmdW5jaW9uZXMuCkVzdG8gc2UgaGFjZSBjb24gZWwgY29tYW5kbyBgbGlicmFyeSgpYDoKCmBgYHtyIGV2YWw9RkFMU0V9CmxpYnJhcnkoZ2dwbG90MikKYGBgCgojIyBJbnN0YWxhY2nDs24gQXZhbnphZGEKCkVuIG9jYXNpb25lcyBleGlzdGVuIGxpYnJlcsOtYXMgcXVlIG5vIHNlIGVuY3VlbnRyYW4gZW4gbG9zIHJlcG9zaXRvcmlvcyBDUkFOIHkgc2UgdGllbmVuIGVsIGPDs2RpZ28gZnVlbnRlIGRlIGxhIGxpYnJlcsOtYSwgCnBvciBlamVtcGxvIGRlbCByZXBvc2l0b3JpbyAqKmdpdGh1YioqIGRlbCBhdXRvci4KRXN0YXMgbGlicmVyw61hcyBxdWUgcHVlZGVuIHNlciBvIG11eSBudWV2YXMsIGVzdGFyIGVuIGJldGEgbyBlbiB2w61hcyBkZSBpbnRlZ3JhcnNlIGEgQ1JBTiByZXF1aWVyZW4gZW4gb2Nhc2lvbmVzIHNlciBjb21waWxhZGFzCnBvciBsbyBxdWUgbmVjZXNpdGFtb3MgYWxndW5hcyBoZXJyYW1pZW50YXMgcGFyYSBmYWNpbGl0YXIgbGEgY29tcGlsYWNpw7NuLgoKTm9zIGNvbmNlbnRyYXJlbW9zIGVuIGVsIHVzbyBkZSBsaWJyZXLDrWFzIGRlICoqZ2l0aHViKiogeWEgcXVlIGludGVudGFyIGNvbmNpbGlhciB0b2RhcyBsYXMgbWV0b2RvbG9nw61hcyBkZSBpbnN0YWxhY2nDs24KYSBwYXJ0aXIgZGUgY8OzZGlnbyBmdWVudGUgc2Ugc2FsZSBkZSBsb3Mgb2JqZXRpdm9zIGRlIGVzdGUgdGV4dG8uCgpQb3IgbG8gdGFudG8gcGFyYSBpbnN0YWxhciBsaWJyZXLDrWFzIGRlc2RlIGdpdGh1YiBwcmltZXJvIG5lY2VzaXRhbW9zIGxhcyBoZXJyYW1pZW50YXMgcGFyYSBjb21waWxhciBlIGluc3RhbGFyLCBtaXNtYXMgcXVlCnNlIGVuY3VlbnRyYW4gZW4gZWwgcGFxdWV0ZSBgZGV2dG9vbHNgLgoKSW5zdGFsYW1vcyBgZGV2dG9vbHNgOgoKYGBge3IgZXZhbD1GQUxTRX0KaW5zdGFsbC5wYWNrYWdlcygiZGV2dG9vbHMiKQpgYGAKCkNhcmdhbW9zIGxhIGxpYnJlcsOtYToKCmBgYHtyIGV2YWw9RkFMU0V9CmxpYnJhcnkoZGV2dG9vbHMpCmBgYAoKWSBsdWVnbyB1c2FuZG8gZWwgX3VzdWFyaW9fIHkgX25vbWJyZSBkZSBsYSBsaWJyZXLDrWFfIHBvZGVtb3MgaW5zdGFsYXJsbywgZXN0b3Mgc2UgZW5jdWVudHJhbiBlbiBsYSBkaXJlY2Npw7NuIGRlICoqZ2l0aHViKioKZGUgbGEgbGlicmVyw61hOgoKYGBge3IgZXZhbD1GQUxTRX0KaW5zdGFsbC5naXRodWIoInVzdWFyaW8vbGlicmVyaWEiKQpgYGAKCj4qKk5PVEEqKjoKRGViZW1vcyB0ZW5lciBjdWlkYWRvIGNvbiBsYXMgdmVyc2lvbmVzIHF1ZSB1c2Vtb3MsIGFsZ3VuYXMgbGlicmVyaWFzIHNlIGVuY3VlbnRyYW4gZW4gZGVzYXJyb2xsbyBjb25zdGFudGUgcG9yIGxvIHF1ZQpwdWVkZW4gbGxlZ2FyIGEgY2FtYmlhciBub21icmVzIGRlIGFyZ3VtZW50b3MgbyBmdW5jaW9uZXMgeSBudWVzdHJvcyBzY3JpcHRzIHBvZHLDrWFuIGRlamFyIGRlIGZ1bmNpb25hci4gT3RybyBwcm9ibGVtYQpjb23Dum4gcmFkaWNhIGVuIGxhIGZhbHRhIGRlIGNvbXBhdGliaWxpZGFkIGRlIGxhIGxpYnJlcsOtYSBxdWUgcXVlcmVtb3MgdXNhciB5IGVsIFIgcXVlIHRlbmVtb3MgaW5zdGFsYWRvLgoKIyMgQWN0dWFsaXphY2nDs24KClBvZGVtb3MgYWN0dWFsaXphciBsb3MgcGFxdWV0ZXMgY29uIGVsIGNvbWFuZG8gYHVwZGF0ZS5wYWNrYWdlcygpYCBxdWUgY29uZm9ybWUgdmEgZW5jb250cmFuZG8gcGFxdWV0ZXMgY29uIGFjdHVhbGl6YWNpw7NuIApub3MgcGlkZSBhcHJvYmFjacOzbi4KVW5hIHZlcnNpw7NuIG11Y2hvIG1lbm9zIGludGVyYWN0aXZhIHkgcXVlIGFkZW1hcyBpbnN0YWxhIGxvcyBwYXF1ZXRlcyBzdWdlcmlkb3MgZXMgZXN0YToKCmBgYHtyIGV2YWw9RkFMU0V9CnVwZGF0ZS5wYWNrYWdlcyhhc2sgPSBGQUxTRSwgZGVwZW5kZW5jaWVzID0gYygnU3VnZ2VzdHMnKSkKYGBgCgpWYWxlIGxhIHBlbmEgYWN0dWFsaXphciBsb3MgcGFxdWV0ZXMsIHNvYnJlIHRvZG8gc2kgYWxndW5hIGRlIGxhcyBmdW5jaW9uZXMgZXN0YSBwcmVzZW50ZSBzb2xvIGVuIGxhcyDDumx0aW1hcyB2ZXJzaW9uZXMuClNpbiBlbWJhcmdvIGRlYmVtb3MgdGVuZXIgY3VpZGFkbyBhIHBvc2libGVzIGluY29tcGF0aWJpbGlkYWRlcyBkZXJpdmFkYXMgZGUgZXN0YXMgYWN0dWFsaXphY2lvbmVzLgoK