Lenguaje

Apuntes sobre el entorno base y el lenguaje de programación.


Introducción

De la misma forma que resulta difícil separar a AWK de su intérprete, igual resulta difícil separar a R de lo que se llama el «sistema base» o el «entorno base de desarrollo» (que no es más que el intérprete y algunas utilerías más que le ayudan con la administración del entorno y paquetes).

R es tanto un lenguaje de programación (enfocado a la estadística) como un entorno para su utilización. Es un proyecto GNU que es similar al lenguaje y entorno S que fue desarrollado en Bell Laboratories (anteriormente AT&T, ahora Lucent Technologies) por John Chambers y colegas, aunque se puede considerar como una implementación diferente de S. Hay algunas diferencias importantes, pero gran parte del código escrito para S se ejecuta sin cambios en R.

R proporciona una amplia variedad de técnicas estadísticas (modelado lineal y no lineal, pruebas estadísticas clásicas, análisis de series temporales, clasificación, agrupamiento, …), capacidades gráficas, y es altamente extensible. El lenguaje S suele ser el vehículo elegido para la investigación en metodología estadística, mientras que R proporciona una ruta de código abierto para participar en esa actividad.

Uno de los puntos fuertes de R es la facilidad con la que se pueden producir elementos visuales de buen diseño con calidad de publicación, que incluyen símbolos matemáticos y fórmulas donde sea necesario. Se ha tenido mucho cuidado con los valores predeterminados para las opciones de diseño menores en los gráficos, pero el usuario conserva el control total.

R está disponible como software libre bajo los términos de la Licencia Pública General GNU de la Free Software Foundation en forma de código fuente. Se compila y se ejecuta en una amplia variedad de plataformas UNIX y sistemas similares (incluidos FreeBSD y Linux), Windows y MacOS.

Instalación

La instalación comienza con la descarga y correspondiente instalación, valga la redundancia, de lo que se conoce como «sistema base». En otras palabras, con la instalación del intérprete y elementos de run-time para que el intérprete de R pueda ser usado.

macOS

Para el caso de macOS, una vez descargado de un o de los sitios espejos de la CRAN (Comprehensive R Archive Network) el paquete de instalación correspondiente a este sistema operativo (en estos momentos cuidando si es para una «mactel» o una con Apple silicon), se ejecuta para que el instalador proceda. En general la instalación no es más que aceptar los valores por defecto (salvo que se requiera la instalación en alguna ruta en particular o un componente en específico). Las imágenes inferiores muestran las diversas etapas que se siguen en este proceso de instalación, hasta el final en que se pregunta si se desea conservar o no el archivo descargado.

Uso

Idealmente, las instrucciones dadas aquí deben aplicar para cualquier sistema operativo en el que R pueda ser instalado, principalmente de tipo unix pero sabemos que Windows siempre es la excepción. De cualquier modo, cuando aplique una excepción, se señalará explícitamente.

Interactivo

Por «uso interactivo» debe entenderse toda actividad que se haga a través de la consola de R, aplicaciones como RStudio y entornos de libretas (Jupyter, Databricks, Dataiku). Para efecto de estas explicaciones, aún y cuando lo que se ejecute en estos entornos sean archivos de comandos (scripts), se considerará como una forma de trabajo interactiva (dado que al terminar la ejecución del script se continua dentro de alguno de estos entornos.

**más por desarrollar**

Desde la línea de comando y en batch

R proporciona un par de front-ends (formas o interfaces) desde las que se puede interactuar desde la línea de comando o ejecutando archivos de instrucciones y comandos de R (scripts). A diferencia del apartado dedicado al modo de trabajo interactivo, para efecto de las explicaciones de esta sección, la diferencia estriba en que al término de la ejecución o script de R el control se regresa a la línea de comando.

Servidor R

** por desarrollar**

Troubleshooting

Mensajes de advertencia

Diversos mensajes pueden ser mostrados al momento de instalar un paquete, ejecutar un comando, hacer uso de una biblioteca, y un largo etcétera dentro el entorno de R pero que no representar un problema o impiden algo. La sección se organiza por estos mensajes como encabezado.

Warning message:
In doTryCatch(return(expr), name, parentenv, handler) :
  unable to load shared object '/Library/Frameworks/R.framework/Resources/modules//R_X11.so':
  dlopen(/Library/Frameworks/R.framework/Resources/modules//R_X11.so, 0x0006): Library not loaded: /opt/X11/lib/libSM.6.dylib
  Referenced from: <33554B34-BF14-316F-B12C-9F6B4C9327DD> /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/modules/R_X11.so
  Reason: tried: '/opt/X11/lib/libSM.6.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/X11/lib/libSM.6.dylib' (no such file), '/opt/X11/lib/libSM.6.dylib' (no such file), '/Library/Frameworks/R.framework/Resources/lib/libSM.6.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk-11.0.18+10/Contents/Home/lib/server/libSM.6.dylib' (no such file)

El warning mostrado arriba apareció al instalar el kernel de R para Jupyter. Al parecer tiene que ver con el subsistema gráfico X11. El equipo donde se hizo la instalación del kernel no contaba con este subsistema ni con Java. Por el momento no se han percibido problemas adicionales.

Mensajes de error

Mensajes que al momento de instalar un paquete, ejecutar un comando, hacer uso de una biblioteca, y un largo etcétera dentro el entorno de R indican un problema que impide concretar o el funcionamiento de algo. La sección se organiza con cada mensaje como encabezado.

> IRkernel::installspec()
Error in IRkernel::installspec() : 
  jupyter-client has to be installed but “jupyter kernelspec --version” exited with code 127.
Además: Warning message:
In system2("jupyter", c("kernelspec", "--version"), FALSE, FALSE) :
  error in running command

Al tratar de registrar el kernel de R ante Jupyter, haciendo uso de la instrucción IRkernel::installspec(), se muestra el mensaje de error indicado. El mensaje indica que Jupyter no ha sido instalado por lo que se resuelve instalándolo (ver página de Jupyter en este sitio al respecto) o activando el entorno de Conda donde ya pudiera haber sido instalado.


Twitter Wordpress eMail
© Todos los derechos reservados.
Dr. Eduardo René Rodríguez Avila
Creación: 2022.09.28
Última actualización: 2023.05.18
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto.