1  Sesión R1

1.1 Introducción

En esta primera sesión, particularmente acometeremos el trabajo básico de:

  1. instalar el software R;
  2. instalar el software RStudio;
  3. instalar los paquetes de trabajo;
  4. cargar los bancos de datos necesarios para comenzar nuestro trabajo;
  5. acercarnos al proceso de datos ‘real’, por medio de la tabulación.

1.1.1 Instalar R

Software R

Acceder a la web del proyecto R y descargar e instalar la versión indicada.

1.1.2 Instalar RStudio

Software RStudio

Acceder a la web de RStudio y descargar e instalar la versión indicada.

1.2 Preguntas y respuestas antes de comenzar …

¿Qué es R?

R es un entorno y lenguaje de programación con un enfoque al análisis estadístico.

R nació como una reimplementación de software libre del lenguaje S, adicionado con soporte para ámbito estático. Se trata de uno de los lenguajes de programación más utilizados en investigación científica, siendo además muy popular en los campos de aprendizaje automático (machine learning), minería de datos, investigación biomédica, bioinformática y matemáticas financieras. A esto contribuye la posibilidad de cargar diferentes bibliotecas o paquetes con funcionalidades de cálculo y de realización de gráficos.

¿Qué es RStudio?

RStudio es un entorno de desarrollo integrado (IDE) para el lenguaje de programación R, dedicado a la computación estadística y gráficos. Incluye una consola, editor de sintaxis que apoya la ejecución de código, así como herramientas para el trazado, la depuración y la gestión del espacio de trabajo.

RStudio está disponible para Windows, Mac y Linux o para navegadores conectados a RStudio Server o RStudio Server Pro (Debian / Ubuntu, RedHat / CentOS, y SUSE Linux). RStudio tiene la misión de proporcionar el entorno informático estadístico R. Permite un análisis y desarrollo para que cualquiera pueda analizar los datos con R.

¿Qué es un script de R base (.R)?

Los script son documentos de texto con la extensión de archivo . R, por ejemplo mi script. R . Estos archivos son iguales a cualquier documentos de texto, pero R los puede leer y ejecutar el código que contienen.

¿Qué es Markdown?

Markdown es un lenguaje de marcado ligero creado por John Gruber que trata de conseguir la máxima legibilidad y facilidad de publicación tanto en su forma de entrada como de salida, inspirándose en muchas convenciones existentes para marcar mensajes de correo electrónico usando texto plano. Markdown convierte el texto marcado en documentos XHTML utilizando html2text creado por Aaron Swartz. Te aconsejamos el siguiente enlace para conocer los rudimentos del lenguaje.

¿Qué es un script de rMarkdown (.Rmd)?

R Markdown es un formato que permite una fácil creación de documentos, presentaciones dinámicas y informes de R. Markdown es un formato de sintaxis simple en documento de texto para crear documentos en HTML, PDF, y Word.

¿Qué es un archivo HTML self-contained?

Los ficheros HTML self contained son ficheros autónomos que residen en un solo archivo HTML. No puede incluir ningún otro archivo y deben funcionar sin una conexión de red. Un usuario debería poder guardar el archivo, abrirlo localmente y tener todo listo para trabajar.

¿Qué es un vector?

Los vectores en R son objetos de una única dimensión que puede contener datos numéricos, cadena de caracteres o datos lógicos, entre otros. Esencialmente son uno de los elementos básicos en la estructura de los datos en R. Se crean con la estructura c().

¿Qué es una matriz?

Una matriz en R es un conjunto de elementos del mismo tipo (numérico, carácter, lógico, etc) organizado en filas y columnas. Las matrices en R se construyen con la función matrix(). Aunque con un ejemplo siempre es mucho más fácil comprender cómo funcionan las matrices.

¿Qué es un dataframe?

Un dataframe es lo que conocemos como un fichero de datos. Son estructuras para trabajar con datos de diferentes tipos (cadena, lógicos, aritméticos). Utilizar una estructura de datos tabular (como una matriz) pero que permite manipular distintos tipos de datos por lo que podemos tener una columna con caracteres, otra con números y otra con variables lógicas. Son importante para hacer tablas, cuadros, gráficas, análisis y modelos que tienen muchas variables estadísticas. Se crean con la estructura data.frame().

¿Qué es un paquete / librería?

Un paquete (package) es una colección de funciones, datos y código R que se almacenan en una carpeta conforme a una estructura bien definida, fácilmente accesible para R. En la web de R se puede consultar la lista de paquetes disponibles.

¿Qué es un objeto?

La información que manipulamos en R se estructura en forma de objetos. Para trabajar con R resulta importante conocer los principales tipos de objetos y sus propiedades básicas. En general, cada tipo de objeto viene definido por una serie de atributos. Las funciones genéricas (como por ejemplo summary o plot) reconocen estos atributos y llevan a cabo distintos tipos de acciones en función del tipo de objeto.

¿Qué es un chunk?

Los trozos de código R o que se insertan en archivos markdown se denominan chunk y permiten hacer análisis estadísticos y mostrar los resultados en el documento final. Los chunk tienen diversas opciones que permiten una mayor flexibilidad en como se muestra el código y los resultados en el documento final.

print('_aquí iría el código_')
[1] "_aquí iría el código_"

¿Qué es inline code?

A diferencia de los chunk, el inline code se inserta en el texto del archivo, es de este modo como insertamos aquí la fecha: 2023-11-25.

1.3 Instalar y cargar paquetes básicos

Los paquetes necesarios son cargados seguidamente. Si alguno no estuviera disponible sería instalado de forma automática por medio de pacman y si no lo hacemos manualmente con install.packages(). El paquete fontawesome, tiene una forma especial de instalación. Es por ello que se cita al final de forma específica.

pacman::p_load(
     tidyverse
     ,maditr
     ,highcharter
     ,car
     ,psych
     ,Hmisc
     ,ca
     ,FactoMineR
     ,factoextra
     ,readr
     ,readxl
     ,tidyverse
     ,kableExtra
     ,igraph
     ,highcharter
     ,sparkline
     ,fontawesome
     ,car
     ,outliers
     ,nortest
     ,vcd
     ,ca
     ,corrplot
     ,gplots
     ,DT
     ,lmtest
     ,sjstats
     ,igraph
     ,expss
     ,gtrendsR
)

1.4 Practicando el scripting

1.4.1 Ejercicio: script 01

Un primer ejemplo para iniciarnos en R es crear el siguiente script donde:

  • se crean dos vectores,
  • se publica su contenido,
  • se unen esos dos vectores creando un dataframe
  • se publica el dataframe
  • se muestra la estructura del dataframe
  • calcularemos la media aritmética del vector
  • calcularemos la media aritmética del campo en el dataframe
# Primero creamos dos vectores
x <- c(1,2,3,1,3,1,3,3,3)
y <- c(2,1,3,4,1,2,4,1,1)

# Publicamos su contenido
x
[1] 1 2 3 1 3 1 3 3 3
y
[1] 2 1 3 4 1 2 4 1 1
# A continuación creamos un _dataframe_ con los dos vectores
df1 <- data.frame(V1=x,V2=y)

# Publicamos su contenido
df1
# Validamos su estructura
str(df1)
'data.frame':   9 obs. of  2 variables:
 $ V1: num  1 2 3 1 3 1 3 3 3
 $ V2: num  2 1 3 4 1 2 4 1 1
# Obtengamos un estadístico, por ejemplo la media
mean(x) # obtenida del vector
[1] 2.222222
mean(df1$V1) # obtenida del _dataframe_; nótese la nomenclatura y el uso de $
[1] 2.222222

1.4.2 Ejercicio: script 02

En este segundo caso, vamos a acercarnos a conocer la influencia de los valores perdidos (ausencias de valor en la información) y su efecto ante el cálculo de estimaciones estadísticas. En este caso …

  • crearemos los vectores de nuevo, añadiendo un valor perdido (NA),
  • se publica su contenido,
  • se unen esos dos vectores creando un dataframe,
  • se publica el dataframe,
  • realizaremos de nuevo los cálculos estadísticos anteriores con una leve modificación
# Modificamos los dos vectores
x <- c(1,2,3,1,3,1,3,3,3, NA) #alternativamente podríamos haber hecho x <- c(x,NA)
y <- c(2,1,3,4,1,2,4,1,1, NA) #alternativamente podríamos haber hecho y <- c(y,NA)

# Publicamos su contenido
x
 [1]  1  2  3  1  3  1  3  3  3 NA
y
 [1]  2  1  3  4  1  2  4  1  1 NA
# A continuación creamos un dataframe con los dos vectores
df1 <- data.frame(V1=x,V2=y)

# Publicamos su contenido
df1
# Obtengamos un estadístico, por ejemplo la media
mean(x) #obtenida del vector
[1] NA
mean(df1$V1) #obtenida del dataframe
[1] NA
mean(df1$V1, na.rm=TRUE) #obtenida del dataframe
[1] 2.222222

1.4.3 Ejercicio: script 03

En este tercer caso, vamos a anticipar un gráfico muy simple hecho con la base de R y el mismo gráfico utilizando la librería highcharter, que será nuestra librería gráfica de referencia.

El gráfico es obtenido usando el dataframe denominado df que fue cargado inicialmente.

# Nuestro primer gráfico 
plot(df1) 

# Nuestro primer gráfico actual
library(highcharter) # no haría falta si ya está cargado.
hchart(df1, type='scatter', hcaes(x=V1, y=V2))

1.4.4 Ejercicio: script 04

En este cuarto ejercicio, añadiremos a nuestro dataframe un identificador de los casos, y para ello usaremos una función LETTERS[] de R que asigna letras a los valores. Como hay 10 casos, así lo indicamos a la función.

Posteriormente, representamos el gráfico como un diagrama de barras para la variable V2 del dataframe llamado df1, e ir completando.

# Vamos a hacer otros gráficos de la forma completa
# Añadimos un campo a df con el nombre de una letra(alumno, ciudad, ...) denominado name
df1$name <- LETTERS[1:10]
df1
# hacemos el gráfico de barras (1)
highchart() %>% 
     hc_chart(type = 'bar') %>% 
     hc_xAxis(categories = df1$name) %>% 
     hc_add_series(df1$V2)
# hacemos el gráfico de barras (2)
highchart() %>% 
     hc_chart(type = 'bar') %>% 
     hc_xAxis(categories = df1$name) %>% 
     hc_add_series(df1$V2, color='olive')
# hacemos el gráfico de barras (3)
highchart() %>% 
     hc_chart(type = 'bar') %>% 
     hc_xAxis(categories = df1$name) %>% 
     hc_add_series(df1$V2, color='olive', name='Ingresos') %>% 
     hc_add_series(df1$V1, color='crimson', name='Gastos')

1.5 Conclusión

Cerramos esta primera parte de las sesiones R, donde hemos comenzado a trabajar con pequeños trozos de código, diferenciando entre lo que es un script de tipo R, de un script de tipo rmarkdown. Hemos hecho una amplia revisión de conceptos y no en este documento, pero sí en la sesión presencial, hemos revisado materiales de trabajo para iniciarse en el conocimiento de R. Saber hasta dónde podemos llegar. La segunda sesión, nos meterá de forma mucho más concienzuda en el análisis de tablas y gráficos y la creación de un mini-dashboard.