En el siguiente artículo desarrollaré lo aprendido en el día 2 de Introducción al lenguaje y entorno R para el análisis de datos.

Base de datos de peces

Carga de datos

Primero crearemos un data frame que contenga los datos de peces

#Inicialmente fijaremos el directorio que usaremos para trabajar
setwd("C:/WorkR")

#Cargaremos las liberias llamadas: readxl y tidyverse
library(readxl)
library(tidyverse)

#Cargamos la base de datos de tipo xlsx
Peces <- read_excel("datos.xlsx", col_types = c("skip", 
    "numeric", "numeric", "text"))

#Cambiamos la variable Peces a formato data frame
Peces <- data.frame(Peces)

#Descripción del data frame
str(Peces)
## 'data.frame':    100 obs. of  3 variables:
##  $ Talla: num  72.3 79.8 62.4 75.1 85.8 ...
##  $ Peso : num  2821 5639 5263 7397 6742 ...
##  $ Sexo : chr  "Hembra" "Macho" "Hembra" "Macho" ...

Calculamos medidas de tendencia central y de dispersion

Estos calculos los realizaremos con Talla y Peso, ya que son variables continuas, en el caso de Sexo no se puede realizar porque son variables cualitativas.

Talla

#Media
mean(Peces$Talla)
## [1] 77.02909
#Redondeo a dos decimales
round(mean(Peces$Talla), 2)
## [1] 77.03
#Mediana
median(Peces$Talla)
## [1] 76.82268
#Redondeo a dos decimales
round(median(Peces$Talla), 2)
## [1] 76.82
#Varianza
var(Peces$Talla)
## [1] 29.11021
#Redondeo a dos decimales
round(var(Peces$Talla), 2)
## [1] 29.11
#Desviación estándar
sd(Peces$Talla)
## [1] 5.395388
#Redondeo a dos decimales
round(sd(Peces$Talla), 2)
## [1] 5.4

Podríamos utilizar una función para calcular los cuartiles, máximo, minímo, mediana y media.

summary(Peces$Talla)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   61.32   73.18   76.82   77.03   80.49   91.10

Representación gráfica de los cuartiles

boxplot(Peces$Talla, horizontal = T, col = "purple", xlab = "Talla de peces")

Peso

#Media
mean(Peces$Peso)
## [1] 5864.144
#Redondeo a dos decimales
round(mean(Peces$Peso), 2)
## [1] 5864.14
#Mediana
median(Peces$Peso)
## [1] 5824.989
#Redondeo a dos decimales
round(median(Peces$Peso), 2)
## [1] 5824.99
#Varianza
var(Peces$Peso)
## [1] 1371864
#Redondeo a dos decimales
round(var(Peces$Peso), 2)
## [1] 1371864
#Desviación estándar
sd(Peces$Peso)
## [1] 1171.266
#Redondeo a dos decimales
round(sd(Peces$Peso), 2)
## [1] 1171.27

Podríamos utilizar una función para calcular los cuartiles, máximo, minímo, mediana y media.

summary(Peces$Peso)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    2627    5065    5825    5864    6656    8636

Representación gráfica de los cuartiles

boxplot(Peces$Peso, horizontal = T, col = "orange", xlab = "Peso de peses")

Sexo

#Cuento la cantidad de Machos y Hembras
conteo <- table(Peces$Sexo)
#Realizo un gráfico de pastel
pie(conteo, labels = Peces$Sexo, main = "Distribución de sexo de los peces", 
    col = c("pink", "lightblue"))

Gráfico de relación entre Talla y Peso

 plot(Peces$Talla ~ Peces$Peso,  xlab = "Peso", ylab = "Talla", 
      main = "Relación entre Talla y Peso de peces", col = "purple", pch = 17)

abline(lm(Peces$Talla ~ Peces$Peso), col = "orange")

Dado que la línea de tendencia es casi horizontal, no hay un aumento o disminución significativa en la talla a medida que aumenta el peso.

Histogramas

hist(Peces$Talla, col = "purple", xlab = "Talla de Peces",
     ylab = "Frecuencia", main = "Histograma de frecuencia")

La talla de peces presenta un comportamiento aproximadamente normal.

  hist(Peces$Peso, col = "orange", xlab = "Peso de Peces",
     ylab = "Frecuencia", main = "Histograma de frecuencia")

El peso de peces presenta un comportamiento aproximadamente normal.

Base de datos de Halterofilia

Primero crearemos un data frame que contenga los datos de contaminación del aire

#Cargamos la base de datos de tipo csv
Airpollution <- read.csv(file = "C:/WorkR/airpollution.csv", header = T, sep = ",")
#Descripción del data frame
str(Airpollution)
## 'data.frame':    336 obs. of  2 variables:
##  $ Nitrogen.Oxides     : num  163 206 284 210 198 ...
##  $ Respirable.Particles: num  39.2 34.6 27.3 34.6 24.2 34.8 45.1 64.5 50.3 57.8 ...

Renombramos las variables

names(Airpollution) <- c("NO", "Particules")

Calcularemos cuartiles y mediana

summary(Airpollution)
##        NO          Particules   
##  Min.   : 50.9   Min.   :12.20  
##  1st Qu.:125.7   1st Qu.:24.90  
##  Median :164.7   Median :30.05  
##  Mean   :188.0   Mean   :32.05  
##  3rd Qu.:231.6   3rd Qu.:37.23  
##  Max.   :587.5   Max.   :77.90  
##  NA's   :4       NA's   :6

Representación gráfica de los cuartiles

#Representación para Nitrogen Oxides
boxplot(Airpollution$NO, horizontal = T, col = "purple", 
        xlab = "Nitrogen Oxides")

#Representación para Respirable Particles
boxplot(Airpollution$Particules, horizontal = T, col = "orange",
        xlab = "Respirable Particles")

Gráfico de relación entre Nitrogen Oxides y Respirable Particles

plot(Airpollution$NO ~ Airpollution$Particules, xlim = c(0,80),  
     xlab = "Respirable Particles", ylab = "Nitrogen Oxides", ylim = c(0,600),
     main = "Relación entre Nitrogen Oxides y Respirable Particles", 
     col = "orange", pch = 17)

abline(lm(Airpollution$NO ~ Airpollution$Particules), col = "purple")

En resumen, a medida que aumentan las partículas respirables, también lo hacen los óxidos de nitrógeno.

Histogramas

hist(Airpollution$NO, col = "orange", xlab = "Nitrogen Oxides",
     ylab = "Frecuencia", main = "Histograma de frecuencia")

Los óxidos de nitrogeno tienen tienen mayor concentración de datos hacía la izquierda.

  hist(Peces$Peso, col = "purple", xlab = "Respirable Particles",
     ylab = "Frecuencia", main = "Histograma de frecuencia")

Las particulas respiradas presenta un comportamiento aproximadamente normal.