Análisis de tipologías y tamaños de gravas y bloques con R

El alumnado de la asignatura “Geología”, de la carrera de Geografía de la UASD, en su viaje de campo colectó, midió e identificó 180 gravas y bloques de la llanura de inundación del río Ocoa, a su paso por la Vuelta de la Paloma. El muestreo se hizo en 6 grupos de 2 personas; cada grupo colectó 30 gravas/bloques. La medición de cada elemento se realizó en milímetros, con “calibradores pie de rey”, en tres ejes: a=largo; b=ancho; c=espesor. La identificación se realizó mediante guía de minerales y rocas, usando igualmente ácido clorhídrico para detectar presencia de carbonatos.

En esta dirección…

http://geografiafisica.no-ip.biz:8080/geoexplorer/composer/#maps/2

…se puede consultar un mapa con la distribución de los muestreos.

Respondemos entonces las siguientes instrucciones:

  1. Realizar diagramas de caja (Box plot) de los tamaños en a, b y c según tipos de rocas. Interpretar por qué ocurre el patrón obtenido. Las rocas con menos de 10 elementos deben excluirse de los gráficos y del análisis. En el gráfico no deben aparecer tipos litológicos inexistentes. Buscar patrones similares y diferentes, Interpretar las posibles causas.
  2. Realizar diagramas de caja (Box plot) de los tamaños en a, b y c según grupos, con independencia del tipo de roca. Busca patrones similares y diferentes. Interpretar las posibles causas; consultar el mapa facilitado.
  3. Comparar la cantidad de rocas plutónicas y margas/lutitas en los muestreos de los grupos 2 y el 3. ¿Son significativamente diferentes? Interpretar las posibles causas. La comparación visual con un gráfico de barras o pastel es útil, pero también es útil la prueba de homogeneidad (Chi cuadrado).
  4. Comparar la cantidad de rocas muestreadas por grupo. ¿Hay homogeneidad entre las parejas y los tipos de roca identificados? Interpretar las posibles causas del resultado obtenido. En este caso, la comparación mediante gráfico de barras o pastel es suficiente.

Los gráficos y análisis se realizan en R utilizando el script transcrito abajo, que puede descargarse en formato TXT desde aquí, o desde el github aquí.

#PAQUETES. NO TODOS ESTOS PAQUETES SUELEN ESTAR DISPONIBLES. VERIFICAR PRIMERO DISPONIBILIDAD, INSTALARLOS EN CASO NECESARIO
library(ggplot2)
library(dplyr)
library(tidyr) 
 
#LECTURA DE LOS DATOS
d<-read.csv("http://geografiafisica.org/r/gb_geologia.csv", encoding='latin1')
d$grupo<-as.factor(d$grupo)
 
#EJERCICIO 1:
##EXTRACCIÓN: VERIFICACIÓN
umbralexcl<-10
e1<-droplevels(d[d$litologia %in% names(which(table(d$litologia)>umbralexcl)),c('litologia','a','b','c')]) %>% gather(eje,mm,-litologia) %>% select(`tipo litológico`=litologia,eje=eje,mm=mm)
 
##BOXPLOT
dev.new()
ggplot(e1, aes(x=`tipo litológico`,y=mm,fill=`tipo litológico`)) + geom_boxplot() + facet_wrap(~eje) + scale_x_discrete(labels=substr(names(which(table(d$litologia)>umbralexcl)),0,4)) + labs(title=paste("Tamaños de gravas y bloques (con más de",umbralexcl,"elementos) según tipo litológico para ejes a, b y c"),x="tipo litológico", y="tamaño (en mm)")
 
#EJERCICIO 2:
##BOXPLOT
dev.new()
ggplot(d[,c('grupo','a','b','c')] %>% gather(eje,mm,-grupo), aes(x=grupo,y=mm,fill=grupo)) + geom_boxplot() + facet_wrap(~eje) + scale_x_discrete(labels=sort(substr(unique(d$grupo),0,4))) + labs(title="Tamaños de gravas y bloques según grupos para ejes a, b y c",x="grupos", y="tamaño (en mm)")
 
#EJERCICIO 3:
dev.new()
ggplot(d[d$grupo %in% c('2','3'),], aes(grupo, fill=litologia)) + geom_bar(position="dodge") + labs(title="Cantidad de gravas y bloques de los grupos 2 y 3",x="grupos", y="cantidad")
dev.new()
ggplot(d[d$grupo %in% c('2','3'),], aes(grupo, fill=litologia)) + geom_bar() + labs(title="Cantidad de gravas y bloques de los grupos 2 y 3",x="grupos", y="cantidad")
dev.new()
ggplot(d[d$grupo %in% c('2','3')&d$litologia %in% c('plutónicas','margas/lutitas'),], aes(grupo, fill=litologia)) + geom_bar() + labs(title="Cantidad de rocas plutónicas y margas/lutitas de los grupos 2 y 3",x="grupo", y="cantidad")
tc<-table(d$grupo,d$litologia)[c('2','2'),c('plutónicas','margas/lutitas')]
chisq.test(tc)
 
#EJERCICIO 4:
dev.new()
ggplot(d, aes(grupo, fill=litologia)) + geom_bar(position="dodge") + labs(title="Cantidad de gravas y bloques según grupos",x="grupos", y="cantidad") #TODOS LOS GRUPOS DE TRABAJO, TODOS LOS TIPOS DE ROCA
dev.new()
ggplot(d, aes(grupo, fill=litologia)) + geom_bar() + labs(title="Cantidad de gravas y bloques según grupos",x="grupos", y="cantidad") #TODOS LOS GRUPOS DE TRABAJO, TODOS LOS TIPOS DE ROCA. APILADAS
 
#GENERAL: ALGUNAS TABLAS DE FRECUENCIAS:
##TABLA DE CONTINGENCIA DE GRUPOS DE TRABAJO/TIPOS LITOLÓGICOS
table(d$grupo,d$litologia)
##TABLA DE CONTINGENCIA DE GRUPOS DE TRABAJO/TIPOS LITOLÓGICOS, SÓLO CON TIPOS CON MÁS DE 10 ELEMENTOS
table(d$grupo,d$litologia)[,names(which(table(d$litologia)>10))]

Created by Pretty R at inside-R.org

 

Dr. José Ramón Martínez Batlle (Ph.D)

Un pensamiento en “Análisis de tipologías y tamaños de gravas y bloques con R

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *