Análisis de datos R

Introducción al análisis de datos mediante el lenguaje R. Para esto tenemos que tener instalado R en nuestra computadora y también el ambiente gráfico RStudio. No es intención de esta página explicar el funcionamiento de RStudio, para ésto hay muchas páginas en internet.

Lo primero que necesitamos es tener nuestros datos experimentales en un formato adecuado para ser importado, el más sencillo es un columnas y en un texto separado por comas (.csv) ver ejemplo abajo.

Ejemplo de formato de datos para análisis con R:

Tratamiento,UExp,Dia,Talla,Peso

Ctrl,A,1,7,60

Ctrl,B,1,8,91

Ctrl,C,1,5,46

T1,A,1,7,70

T1,B,1,6,51

T1,C,1,5,35

T2,A,1,7,75

T2,B,1,9,11

T2,C,1,5,49

Ejercicio

Para este ejercicio tenemos un experimento con tres tratamientos (Ctrl, T1 y T2), con tres unidades experimentales por tratamiento (A, B y C), seis días de toma de muestra y dos tipos de datos (Talla y Peso) en un archivo llamado dataR.csv que se capturó en Excel y se salvó como archivo delimitado por comas.

Este set de datos se puede descargar de aquí.

Instalar librerías

Importemos a R librerías que serán útiles para análisis estadísticos y graficas. En RStudio seleccionemos en la ventana Inf derecha Packages y demos click en Install, se abre un cuadro de diálogo en el cual podemos buscar la paquetería deseada. 

NOTA. Esto solo lo tenemos hacer una vez .
Instalemos las siguientes paqueterías (separadas por espacio o comas) en el renglón Packages y demos Install:
dplyr ggplot2 tidyverse ggpubr rstatix

Importar datos

En RStudio creemos un nuevo proyecto en el directorio donde tengamos el archivo que queremos importar, si no lo hemos hecho, descarguemos el archivo dataR.csv y salvémoslo en un directorio que llamaremos, para este ejemplo, BioinfoR. Ya creado el proyecto nos aparecerán en la ventana inferior derecha los archivos en el directorio.

Seleccionemos el archivo dataR.csv y en el cuadro de diálogo que aparece al darle click seleccionemos Importar dataset.
Se abre un nuevo cuadro con las opciones para importar, dejar todo por default y demos importar.

Nos aparece en la ventana superior izquierda ya los datos con los que trabajaremos.

Preparación de datos

Cargemos primero las librería que importamos anteriormente, en la ventana inferior izquierda, que es la consola donde meteremos todos los comandos, copiar y pegar esto:

library(dplyr)

library(ggplot2)

library(tidyverse)

library(ggpubr)

library(rstatix)

Lo primero que debemos hacer es crear un dataframe que llamaremos df, para ello tecleemos el siguiente comando (sin el signo >, ese es el prompt de R).

> df <- dataR

Ahora creemos unos objetos con agrupamientos por Peso y Talla:

> dfmg <- df %>% group_by(Tratamiento, Dia) %>% summarise(Peso)

> dfmm <- df %>% group_by(Tratamiento, Dia) %>% summarise(Talla)

Hagamos un resumen de los objetos creados:

> xmg <- summarise(dfmg, mean_peso = mean(Peso))

> xmm <- summarise(dfmm, mean_talla = mean(Talla))

Cómo veremos en la ventana superior derecha, tenemos ya varios objetos creados:

Boxplot de datos básicos

Creemos una gráfica de boxplot con estos datos básicos por peso:

> ggplot(dfmg, aes(x = Tratamiento, y = Peso)) + geom_boxplot(aes(color = Tratamiento))

El primer comando (ggplot) crea el objeto a graficar pero para obtener una gráfica tenemos que decirle a ggplot que tipo de gráfica queremos (geom_boxplot). Notese que los comando están separados por el signo +

Pero esta gráfica es de todos los pesos pues usamos el objeto dfmg solo separado por tratamientos:

Ahora para ver como se ven los datos por tratamiento y por día de muestreo, al comando anterior agregemos que los separe (faceted) por día agregando el comando facet_grid:

> ggplot(dfmg, aes(x = Tratamiento, y = Peso)) + geom_boxplot(aes(color = Tratamiento)) + facet_grid(~Dia)

Hagamos lo mismo para las tallas, ahora usaremos el dataframe dfmm y además agreguemos el valor de la media (+ stat_summary) ya que el boxplot da la mediana y la dispersión :

> ggplot(dfmm, aes(x = Tratamiento, y = Talla)) + geom_boxplot(aes(color = Tratamiento)) + facet_grid(~Dia) + stat_summary(fun = mean, geom = "point", shape = 18, size=3, color = "black")

Gráficas de lineas de datos promedio

Veamos ahora los datos pero como una linea:

> ggplot(xmg, aes(x=Dia, y=mean_peso)) + geom_smooth(aes(color=Tratamiento), se = FALSE) + geom_point(aes(color=Tratamiento))

Le estamos pidiendo a ggplot que con el objeto xmg (promedio de pesos) nos grafique una linea (geom_smooth) por tratamiento y nos ponga en las líneas puntos para cada día (geom_point).

Lo mismo podemos hacer para las tallas:

> ggplot(xmm, aes(x=Dia, y=mean_talla)) + geom_smooth(aes(color=Tratamiento), se = FALSE) + geom_point(aes(color=Tratamiento))

Veamos ahora si hay diferencias significativas en la siguiente subpágina.