Contenidos

El lenguaje de programación R

Características principales

Manuales oficiales e instalación

Cómo obtener ayuda

Paquetes

El lenguaje de programación R

R es una implementación de código abierto del lenguaje S, el cual fue creado y desarrollado en los Laboratorios Bell (originalmente parte de la corporación AT&T). R fue creado en 1991 por Ross Ihaka y Robert Gentleman en el Departamento de Estadística de la Universidad de Auckland, pero no se hizo público hasta 1993. En 1995, R se convirtió en software libre al adoptar la Licencia Pública General GNU. Este cambio fue trascendental, ya que permitió que el código fuente de R fuera accesible para cualquiera que quisiera experimentarlo. Finalmente, en el año 2000, se liberó la versión 1.0.0 de R al público.

Volver al inicio

Características principales

Actualmente, R funciona en casi cualquier plataforma y, al ser de código abierto, permite que cualquiera adapte su código a otros entornos. De hecho, R puede ejecutarse en algunas tabletas digitales, teléfonos inteligentes y consolas de videojuegos. A lo largo del año, se liberan frecuentemente versiones menores para solucionar problemas identificados en el software, mientras que las actualizaciones mayores suelen publicarse en el último trimestre del año, generalmente en octubre.

Una característica clave de R es que su funcionalidad se extiende mediante paquetes o librerías. Es decir, uno puede empezar a trabajar con R únicamente con “lo básico” e ir incorporando paquetes según las necesidades específicas de cada proyecto. El éxito de R se debe, en gran medida, a su comunidad activa, que constantemente desarrolla y prueba paquetes para ampliar la funcionalidad del lenguaje.

Sin embargo, ningún lenguaje de programación es perfecto, y R no es la excepción. En términos generales, R está basado en una tecnología de más de 50 años, ya que evolucionó a partir del lenguaje de programación S. Por ejemplo, en sus inicios, R no tenía soporte para gráficos 3D. Aunque las constantes contribuciones de la comunidad han permitido su crecimiento, una limitación real es que la funcionalidad de R se desarrolla “bajo demanda” y depende de contribuciones voluntarias. Esto significa que, si no existe un paquete con una funcionalidad específica para un proyecto, alguien tendrá que codificar la solución (generalmente, el propio interesado). Otra limitación importante es el uso de la memoria física. R suele consumir más memoria que otros lenguajes de programación y paquetes estadísticos, ya que todos los objetos deben almacenarse en la memoria, lo que dificulta el trabajo con grandes volúmenes de datos.

Volver al inicio

Manuales oficiales e instalación

A continuación, se presenta una lista de recursos oficiales generados por Comprehensive R Archive Network (CRAN) sobre el lenguaje de programación R. CRAN es una red de servidores FTP y web en todo el mundo que almacena versiones idénticas y actualizadas del código y documentación de R. Dado que se trata de documentación oficial, está disponible en inglés:

Las instrucciones de instalación varían según el sistema operativo donde se ejecutará R. Se pueden consultar en los siguientes enlaces (en inglés):

Aunque es posible trabajar directamente con R, se recomienda instalar RStudio, un entorno de desarrollo integrado (IDE) que enriquece la experiencia de trabajo con R. RStudio está disponible para distintos sistemas operativos y se distribuye en cinco versiones. Para este curso, se debe instalar RStudio Desktop, que es de código abierto.

Si la instalación de R y RStudio no es una opción viable (por restricciones de permisos, por ejemplo), se puede utilizar Posit Cloud, una alternativa basada en la nube.

Volver al inicio

Cómo obtener ayuda

La comunidad de R es muy activa y que contínuamente se agrega funcionalidad al sistema. Por esta razón, parece imposible conocer todas las funciones disponibles sin tener algún punto de referencia.

En R, la ayuda se solicita mediante el signo de interrogación (?), de la siquiente manera:

Veamos con un poco más de detalle la información que devuelve la ayuda de una función. Por ejemplo, solicitaremos ayuda sobre la función paste (que concatena elementos). Par solicitar ayuda, ejecuta la instrucción ?paste.

Si el comando se ejecutó correctamente, deberías ver en la parte inferior derecha de tu pantalla un documento cuyo encabezado se ve similar al que se muestra a continuación:

Archivo de ayuda de la función paste
Archivo de ayuda de la función paste

Aunque el documento de ayuda es extenso y contiene una gran cantidad de elementos, en este momento nos enfocaremos en cuatro de ellos:

Ahora, veamos las diferentes formas en las que podemos utilizar la función paste, con base en lo que nos mostró la ayuda.

# Llama la función paste con los argumentos 'Hola' y 'mundo!'. Observa que no se asignan valores a los argumentos opcionales 'sep' y 'collapse', por lo que se usarán sus valores por defecto.
paste('Hola', 'Mundo!')
## [1] "Hola Mundo!"
# Llama la función paste con los argumentos 'Hola' y 'mundo!'. Observa que se asigna un valor al argumento opcional 'sep' (el separador será un guión) y no se asigna un valor al argumento opcional 'collapse', por lo que se usará su valor por defecto. En este ejemplo, R sabe que nos referimos al argumento sep debido al orden de los argumentos.
paste('Hola', 'Mundo!', "-")
## [1] "Hola Mundo! -"
# Llama la función paste con los argumentos 'Hola' y 'mundo!'. Observa que se asigna un valor al argumento opcional sep (el separador será un guión) y no se asigna un valor al argumento opcional 'collapse', por lo que se usará su valor por defecto. En este ejemplo, R sabe que nos referimos al argumento sep debido a que explícitamente indicamos a qué argumento se le asgna el valor.
paste('Hola', 'Mundo!', sep = "-")
## [1] "Hola-Mundo!"

Volver al inicio

Paquetes

La funcionalidad de R se construye con base en paquetes. Los paquetes definen conjuntos de funciones, las cuales pueden ser utilizadas por los usuarios según sea el caso. Los paquetes se instalan y cargan según las necesidades de cada usuario, por lo que cada vez que se inicia una sesión de R, sólo las funciones definidas en el paquete base se cargan de forma automática.

Por ejemplo, vamos a instalar y a utilizar un paquete de contiene algunas implementaciones de juegos en R. El paquete se llama fun y lo instalaremos en el sistema mediante la instrucción:

install.package('fun')

Es importante observar los mensajes que nos regresa la función install.package de forma que podamos verificar que, efectivamente, el paquete ha sido instalado. La instalación de paquetes se realiza sólo una vez por paquete (la primera vez que se va a usar).

Una vez que el paquete está instalado en el sistema, debemos cargarlo en memoria. Este proceso debe realizarse una vez por sesión en R. En otras palabras, cada vez que se inicia R Studio Desktop y que pensamos usar alguna de las funciones definidas en el paquete. Para cargar el paquete en memoria debemos usar:

library(fun)

Si por alguna razón obtenemos un mensaje de error como: Error in library(fun) : there is no package called ‘fun’, esto significa que el paquete no se instaló correctamente en el paso anterior. Las razones por las que la instalación de un pauqete puede fallar son diversas, pero entre las más comúnes está el escribir mal el nombre del paquete o la incompatibilidad de versiones.

Una vez que sabemos que el paquete se ha cargado en memoria de forma exitosa, invocaremos el juego del busca minas. Por favor, si tu sistema operativo es Mac Os o Linux, ejecuta primero la siguiente instrucción (no aplica para usuarios de Windows):

X11(type = 'Xlib') 

Ahora, iniciemos el juego con el comando:

mine_sweeper(width = 5, height = 5)

¡Diviértete!

Volver al inicio