El propósito de este curso es otorgar el mayor conocimiento posible del lenguaje de programación R a un nivel básico-intermedio con el que sean capaces de manipular fuentes de información, crear gráficas informativas y llamativas, obtener mediante el software RStudio reportes en distintos formatos y obtener experiencia para la resolución de problemas que requieran este tipo de herramientas.
A lo largo de este curso se verán varios temas generales sobre el lenguaje R y de ciertas librerías especiales diseñadas para problemas específicos, así como funciones especiales que faciliten ciertas tareas.
Por el momento, se tiene el siguiente esquema para el temario, el cual puede irse modificando y desglosando con el transcurso del tiempo.
R es un lenguaje de programación interpretado diseñado para la computación estadística y proporcionar un ambiente gráfico.
R esta basado en el lenguaje de programación estadístico S, el cual fue desarrollado en los laboratorios Bell por John Chambers, Rick Becker y Allan Willks. Este lenguaje llamaba a subrutinas de FORTRAN aunque después, en 1988, fue reescrito en lenguaje C.
La idea de R nació en Nueva Zelanda por Ross Ihaka y Robert Gentleman con la intención de crear un lenguaje que ayudará en la enseñanza estadística de la Universidad Nueva Zelanda, esto en 1992, y fue hasta 1995 que se lanzo una primera versión estable. Ya mediados de 1997 se creo un grupo para modificar el código fuente de este lenguaje.
La mayoría de las funciones en R están escritas en el propio lenguaje pero, gracias al trabajo de la comunidad, se han hecho muchas implementaciones y procedimientos que están escritos en C, C++ y FORTRAN para lograr una mayor eficiencia en cuanto al tiempo y memoria.
A partir de 1995 se decide usar la licencia GNU para que R sea un software libre, es decir, que se puede consultar el código fuente, se puede modificar las funciones internas, aunque no es buena idea si no se tiene un conocimiento profundo del lenguaje.
R no esta diseñar para ser un lenguaje de programación rápido, si no que su propósito es hacer un análisis de datos interactivo y fácil para humanos.
The R Fundation (2020). What is R? https://www.r-project.org/about.html
Wickham, H. (2019). Advanced r. CRC press. https://adv-r.hadley.nz/index.html
Wikipedia contributors. (2020, May 31). R (programming language). In Wikipedia, The Free Encyclopedia. Retrieved 15:18, June 1, 2020, from https://en.wikipedia.org/w/index.php?title=R_(programming_language)&oldid=960049940
Hay muchas razones por las cuales aprender R es buena idea, aún si es el primer lenguaje de programación con el que se tiene contacto, algunas de esas razones son las siguientes
También pueden pasar un buen rato descubriendo más cosas en algunos sitios interesantes 🙇
A continuación se presenta una lista de una serie de recursos, funciones y sitios donde pueden consultar información, preguntar e investigar más acerca de todo los problemas que puedan surgir.
?library, help()vignette(package = "some_package") o vignette("some_package")str()RStudio es una IDE disponible desde el 2011 que nos permite trabajar de una manera más fluida con el lenguaje de programación R incluyendo una consola donde se puede trabajar de manera directa con el lenguaje, un editor de textos para guardar nuestro código, crear Scripts, etc, distintos paneles para visualizar gráficas, navegar en los distintos directorios donde estemos posicionados y un gran conjunto de herramientas que facilitan la integración de librerías y la creación de documentos de distintas extensiones.
En RStudio también podemos trabajar con otros lenguajes de programación e integrar estos con R, como por ejemplo Python; de hecho, desde el 2019 se tiene soporte para Notebooks de Jupyter. Además de que, como cualquier IDE, podemos personalizar un poco la interfaz para trabajar más cómodamente.
Fuentes: RStudio 1.1 Preview - I Only Work in Black; Theme Black.
Hay que tener en cuenta los siguientes puntos:
Antes de comenzar a echar código debemos aprender como escribir notas, y esto lo haremos a través de un RMarkdown. Markdown es un lenguaje de marcado, así como lo es HTML, creado por John Gruberque donde, mediante una sitaxis fácil de aprender, se pueden crear archivos de texto plano integrando elementos para mejorar el formato de este. En el caso de RMarkdown, además de la sintaxis de Markdown, se pueden integrar elementos de HTML, CSS(Cascading Style Sheets)) y LaTex, con la finalidad de obtener archivos con distinta extensión, como lo son pdf, html y word.
Es cierto que ciertos archivos no se podrán llevar de una manera directa de uno a otro, como html a pdf cuando se tienen gráficas interactivas, pero siempre se tiene la posibilidad de integrar código y resultados del lenguaje de programación con el que se este trabajando en el tipo de archivo de salida. Uno de las primeras herramientas es Zepellin; otras aplicaciones de este estilo son: Jupyter, Typora, etc.
La ayuda fundamental para una librería de R, como generalmente va a ser si se tiene disponible, es una CheetSheet y la correspondiente a RMakdown se puede descargar del siguiente enlace
Para facilitar y complementar un poco la sintaxis, aquí se enlistan algunos puntos recurrentes
Se pueden agregar comentarios en MarkDown empezando <!– y terminando con –>.
Cuando se esta trabajando en \(\LaTeX\), generalmente se agrega algo llamado preámbulo al inicio de los archivos .tex donde se colocan todos los comandos para darle formato al texto, en este caso se podría agregar un preámbulo agregando en el YAML en la sección includes: in_header: o se pueden agregar las librerías de LaTex directamente dentro de header_includes:
"usepackage[all]{xy}"
"usepackage{enumitem}"
"usepackage{caption}"
"captionsetup{labelformat=empty}".bib. Esto puede hacerse en la sección bibliography: del YAML, por ejemplo: bibliography:"bib/library.bib". El estilo de esta también se puede en la sección csl:, por ejemplo: csl:acm-sig-proceedings-long-author-list.cslhtml_document:
Donde mínimo se tienen las siguientes opciones:
Para un archivo PDF, se tienen también una gran cantidad de opciones para personalizar el documento
Sea cual sea formato de salida que se eliga, se pueden generalizar algunas características del archivo
#```{r setup, include=FALSE}
knitr::opts_chunk$set(
echo = FALSE, #sirve para mostrar código y va dentro del chunk
fig.pos = 'H',
fig.align = 'center',
message = FALSE, warning = FALSE
)
#```Gatitos
Otro punto importante es que la generación de tablas podemos obtenerla directamente de una “tabla” que se produzca con código, aunque ciertas veces se puede preferir hacer una tabla de manera manual. En la página Tables Generator se pueden crear estas con una interfaz amigable y simplemente copiar y pegar el resultado aquí mismo, ya sea en formato Markdown, HTML o en \(\LaTeX\).
La integración del código en R se puede hacer mediante un chunk o mediante un ejecución en linea, para esto hay que seguir la siguiente sintaxis: \(`\)r code\(`\), por ejemplo, este 🐒 fue generado a través de un comando inline.
En el siguiente enlace pueden encontrar un poco más sobre la nomenclatura que se tiene en YAML
Finalmente, existen muchas fuentes de donde obtener información, aunque una de las más completas es del Bookdown R Markdown: The Definitive Guide y la página oficial de RMarkdown.
Sugerencias y comentarios al correo cvasquezfguerra@gmail.com