true

Leyendo base de datos

datos <- read.csv("PrecipitacionTemperaturaPromedio.csv")

Los datos corresponden a la suma de los promedios mensuales de precipitación y al promedio de temperatura media de 30 años, considerado por la Organización Meteorologica Mundial (OMM) como el numero de años para establecer una media climatológica, en este caso 1981-2010.

Datos consultados el 5 de Diciembre de 2017; disponibles en la página web DATOS ABIERTOS GOBIERNO DIGITAL COLOMBIA:

https://www.datos.gov.co/Ambiente-y-Desarrollo-Sostenible/Promedios-Precipitaci-n-y-Temperatura-media-Promed/nsxu-h2dh

Explorando la base de datos

La estructura completa de los datos tiene 450 observaciones y 41 variables .Una exploración de los datos, arroja información sobre la clase de las variables y la estructura general de los datos, para tomar decisiones acecar del análisis que se hará. Para el siguiente caso , se observa que las variables en las que se encuentran contenidas los datos de las precipitaciones y de las temperaturas son de clase numeric, y por otra parte las variables para los municipios y departamentos son de clase factor.

str(datos)
## 'data.frame':    450 obs. of  41 variables:
##  $ codigo       : int  22075030 27015150 21206260 35095030 28035010 13055030 25025090 16025060 54025010 21206300 ...
##  $ nombre       : Factor w/ 441 levels "Abrego Centro Admo",..: 316 295 143 396 430 164 39 161 343 148 ...
##  $ categoria    : Factor w/ 5 levels "AM","CO","CP",..: 2 2 2 2 2 2 4 2 2 3 ...
##  $ departamento : Factor w/ 32 levels "Amazonas","Antioquia",..: 30 2 5 7 12 14 20 23 13 5 ...
##  $ municipio    : Factor w/ 342 levels "Abrego","Agrado",..: 237 31 40 91 322 171 97 241 259 40 ...
##  $ corriente    : Factor w/ 326 levels "Agua Miel","ALGDONAL",..: 164 169 43 147 104 278 162 261 140 312 ...
##  $ lag          : int  4 6 4 5 10 8 9 7 4 4 ...
##  $ lam          : int  12 24 47 34 11 39 2 46 53 30 ...
##  $ las          : num  5.8 50 55.1 19.6 34 33 46.8 0 54.5 0 ...
##  $ lac          : Factor w/ 2 levels "N","S": 1 1 1 1 1 1 1 1 1 1 ...
##  $ log          : int  75 75 74 72 73 75 73 72 76 74 ...
##  $ lom          : int  17 23 2 56 32 58 58 48 13 10 ...
##  $ los          : num  4.1 48 59 38.2 50 21 15 0 55 0 ...
##  $ loc          : Factor w/ 1 level "W": 1 1 1 1 1 1 1 1 1 1 ...
##  $ altitud      : int  2020 1500 2570 3000 70 30 34 1000 1115 2700 ...
##  $ enepreci30a  : num  97.2 57.5 33.3 17.1 18 ...
##  $ febpreci30a  : num  125.1 80.1 51.3 30.4 10.2 ...
##  $ marpreci30a  : num  165.7 113.2 73.3 57.2 69.3 ...
##  $ abrpreci30a  : num  215.1 188.6 83.7 95.7 137.3 ...
##  $ maypreci30a  : num  213.2 246.8 96.9 87.8 167 ...
##  $ junpreci30a  : num  146.9 199.1 58 70.1 137.3 ...
##  $ julpreci30a  : num  115.6 207.6 54.1 77.9 105.5 ...
##  $ agopreci30a  : num  107.1 202.3 48.3 58.8 154.9 ...
##  $ seppreci30a  : num  151.9 234.2 53.1 62.5 183.8 ...
##  $ octpreci30a  : num  185.7 235.4 101 87.2 193.1 ...
##  $ novpreci30a  : num  179.6 155 95.3 81.4 132.4 ...
##  $ dicpreci30a  : num  125.1 83.3 53.9 23.9 38.2 ...
##  $ totalpreci30a: num  1822 2003 769 750 1344 ...
##  $ enetemp30a   : num  16.7 21.9 13.8 11.6 29.4 27 28.5 21.1 20.6 10.5 ...
##  $ febtemp30a   : num  16.9 22.2 13.9 11.7 30.2 27.2 28.9 21.4 20.8 10.2 ...
##  $ martemp30a   : num  17 22.3 14 11.8 30.3 27.5 29.3 21.8 21 10.1 ...
##  $ abrtemp30a   : num  17.2 22.1 14 11.8 29.6 27.6 28.9 22.3 21.2 10.1 ...
##  $ maytemp30a   : num  17.2 22.1 14.1 11.8 29 27.4 28.5 22.6 21.3 9.5 ...
##  $ juntemp30a   : num  17 22.2 14 11.4 28.8 27.5 28.5 22.5 21.2 9.7 ...
##  $ jultemp30a   : num  16.8 22.1 13.8 10.9 29.2 27.4 28.6 22.3 21.1 7.5 ...
##  $ agotemp30a   : num  17.1 22.2 13.8 10.9 29 27.4 28.7 22.7 21.1 9.7 ...
##  $ septemp30a   : num  17.2 22 13.7 11.2 28 27.1 28.1 22.7 20.8 9.9 ...
##  $ octtemp30a   : num  17 21.7 13.8 11.4 27.7 27 27.9 22.1 20.6 9.9 ...
##  $ novtemp30a   : num  16.8 21.7 13.8 11.6 27.8 27 27.9 21.8 20.6 9.1 ...
##  $ dictemp30a   : num  16.8 21.7 13.9 11.8 28.3 27 28.1 21.1 20.6 8.8 ...
##  $ protemp30a   : num  17 22 13.9 11.5 28.9 27.2 28.5 22 20.9 9.3 ...
dim(datos)
## [1] 450  41
head(datos)
##     codigo            nombre categoria departamento  municipio   corriente
## 1 22075030          Riomanso        CO       Tolima     Rovira       Manso
## 2 27015150   Progreso El Hda        CO    Antioquia    Barbosa    Medellin
## 3 21206260 C.Univ.Agrop-Udca        CO    Bogota DC  Bogota DC      BOGOTA
## 4 35095030          Tunel El        CO       Boyaca    Cuitiva Lag de Tota
## 5 28035010        Villa Rosa        CO        Cesar Valledupar     Diluvio
## 6 13055030             Galan        CO      Cordoba   Monteria        Sinu
##   lag lam  las lac log lom  los loc altitud enepreci30a febpreci30a
## 1   4  12  5.8   N  75  17  4.1   W    2020        97.2       125.1
## 2   6  24 50.0   N  75  23 48.0   W    1500        57.5        80.1
## 3   4  47 55.1   N  74   2 59.0   W    2570        33.3        51.3
## 4   5  34 19.6   N  72  56 38.2   W    3000        17.1        30.4
## 5  10  11 34.0   N  73  32 50.0   W      70        18.0        10.2
## 6   8  39 33.0   N  75  58 21.0   W      30        18.0        14.5
##   marpreci30a abrpreci30a maypreci30a junpreci30a julpreci30a agopreci30a
## 1       165.7       215.1       213.2       146.9       115.6       107.1
## 2       113.2       188.6       246.8       199.1       207.6       202.3
## 3        73.3        83.7        96.9        58.0        54.1        48.3
## 4        57.2        95.7        87.8        70.1        77.9        58.8
## 5        69.3       137.3       167.0       137.3       105.5       154.9
## 6        37.8       101.7       174.6       153.3       154.8       173.8
##   seppreci30a octpreci30a novpreci30a dicpreci30a totalpreci30a enetemp30a
## 1       151.9       185.7       179.6       125.1        1822.2       16.7
## 2       234.2       235.4       155.0        83.3        2003.0       21.9
## 3        53.1       101.0        95.3        53.9         768.9       13.8
## 4        62.5        87.2        81.4        23.9         749.9       11.6
## 5       183.8       193.1       132.4        38.2        1344.1       29.4
## 6       169.8       140.5        91.6        32.4        1225.3       27.0
##   febtemp30a martemp30a abrtemp30a maytemp30a juntemp30a jultemp30a
## 1       16.9       17.0       17.2       17.2       17.0       16.8
## 2       22.2       22.3       22.1       22.1       22.2       22.1
## 3       13.9       14.0       14.0       14.1       14.0       13.8
## 4       11.7       11.8       11.8       11.8       11.4       10.9
## 5       30.2       30.3       29.6       29.0       28.8       29.2
## 6       27.2       27.5       27.6       27.4       27.5       27.4
##   agotemp30a septemp30a octtemp30a novtemp30a dictemp30a protemp30a
## 1       17.1       17.2       17.0       16.8       16.8       17.0
## 2       22.2       22.0       21.7       21.7       21.7       22.0
## 3       13.8       13.7       13.8       13.8       13.9       13.9
## 4       10.9       11.2       11.4       11.6       11.8       11.5
## 5       29.0       28.0       27.7       27.8       28.3       28.9
## 6       27.4       27.1       27.0       27.0       27.0       27.2

Creando datos de precipitaciones.

Se creará una objeto que contenga la información sólo de las precipitaciones para analizar mes a mes el comportamiento de las mismas y en los diferentes de partamentos y regiones del país.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)

datosPrecipitaciones <- datos %>% select(departamento, municipio, enepreci30a, febpreci30a,  marpreci30a, abrpreci30a, maypreci30a, junpreci30a, julpreci30a, agopreci30a, seppreci30a, octpreci30a, novpreci30a, dicpreci30a)

names(datosPrecipitaciones) <- c("Departamento","Municipio", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio" , "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")

str(datosPrecipitaciones)
## 'data.frame':    450 obs. of  14 variables:
##  $ Departamento: Factor w/ 32 levels "Amazonas","Antioquia",..: 30 2 5 7 12 14 20 23 13 5 ...
##  $ Municipio   : Factor w/ 342 levels "Abrego","Agrado",..: 237 31 40 91 322 171 97 241 259 40 ...
##  $ Enero       : num  97.2 57.5 33.3 17.1 18 ...
##  $ Febrero     : num  125.1 80.1 51.3 30.4 10.2 ...
##  $ Marzo       : num  165.7 113.2 73.3 57.2 69.3 ...
##  $ Abril       : num  215.1 188.6 83.7 95.7 137.3 ...
##  $ Mayo        : num  213.2 246.8 96.9 87.8 167 ...
##  $ Junio       : num  146.9 199.1 58 70.1 137.3 ...
##  $ Julio       : num  115.6 207.6 54.1 77.9 105.5 ...
##  $ Agosto      : num  107.1 202.3 48.3 58.8 154.9 ...
##  $ Septiembre  : num  151.9 234.2 53.1 62.5 183.8 ...
##  $ Octubre     : num  185.7 235.4 101 87.2 193.1 ...
##  $ Noviembre   : num  179.6 155 95.3 81.4 132.4 ...
##  $ Diciembre   : num  125.1 83.3 53.9 23.9 38.2 ...
head(datosPrecipitaciones)
##   Departamento  Municipio Enero Febrero Marzo Abril  Mayo Junio Julio
## 1       Tolima     Rovira  97.2   125.1 165.7 215.1 213.2 146.9 115.6
## 2    Antioquia    Barbosa  57.5    80.1 113.2 188.6 246.8 199.1 207.6
## 3    Bogota DC  Bogota DC  33.3    51.3  73.3  83.7  96.9  58.0  54.1
## 4       Boyaca    Cuitiva  17.1    30.4  57.2  95.7  87.8  70.1  77.9
## 5        Cesar Valledupar  18.0    10.2  69.3 137.3 167.0 137.3 105.5
## 6      Cordoba   Monteria  18.0    14.5  37.8 101.7 174.6 153.3 154.8
##   Agosto Septiembre Octubre Noviembre Diciembre
## 1  107.1      151.9   185.7     179.6     125.1
## 2  202.3      234.2   235.4     155.0      83.3
## 3   48.3       53.1   101.0      95.3      53.9
## 4   58.8       62.5    87.2      81.4      23.9
## 5  154.9      183.8   193.1     132.4      38.2
## 6  173.8      169.8   140.5      91.6      32.4
summary(datosPrecipitaciones[ ,c(3:14)])
##      Enero           Febrero           Marzo            Abril      
##  Min.   :  0.80   Min.   :  0.50   Min.   :  1.20   Min.   :  6.9  
##  1st Qu.: 28.15   1st Qu.: 43.08   1st Qu.: 73.92   1st Qu.:120.3  
##  Median : 63.00   Median : 81.80   Median :121.85   Median :175.0  
##  Mean   : 88.46   Mean   : 98.53   Mean   :137.81   Mean   :205.1  
##  3rd Qu.:103.50   3rd Qu.:124.05   3rd Qu.:175.93   3rd Qu.:267.2  
##  Max.   :618.60   Max.   :574.60   Max.   :606.90   Max.   :818.8  
##       Mayo           Junio            Julio           Agosto      
##  Min.   : 27.3   Min.   :  8.20   Min.   :  6.5   Min.   : 17.60  
##  1st Qu.:129.0   1st Qu.: 72.92   1st Qu.: 55.7   1st Qu.: 56.98  
##  Median :184.6   Median :130.85   Median :115.8   Median :128.10  
##  Mean   :229.9   Mean   :181.50   Mean   :164.7   Mean   :164.08  
##  3rd Qu.:301.5   3rd Qu.:242.15   3rd Qu.:224.0   3rd Qu.:224.55  
##  Max.   :853.7   Max.   :852.90   Max.   :804.6   Max.   :865.80  
##    Septiembre        Octubre        Noviembre       Diciembre    
##  Min.   : 35.70   Min.   : 65.7   Min.   : 53.5   Min.   : 15.2  
##  1st Qu.: 94.17   1st Qu.:147.2   1st Qu.:118.8   1st Qu.: 55.5  
##  Median :163.60   Median :202.8   Median :171.8   Median : 99.3  
##  Mean   :190.04   Mean   :232.3   Mean   :200.4   Mean   :128.6  
##  3rd Qu.:240.80   3rd Qu.:284.0   3rd Qu.:243.3   3rd Qu.:155.3  
##  Max.   :911.30   Max.   :881.5   Max.   :836.4   Max.   :810.3

Formato ancho a largo (Precipitaciones)

Para un manejo de más eficiente de la información, se hará un cambio en la estrucutura del objeto anteriomente creado; cambiando de un formato ancho ,el cual contiene 14 variables (columnas) y 450 observaciones (filas), a un formato largo el cual contiene 5400 observaciones y 4 variables.

library(dplyr)
library(tidyr)

PrecLargo <- datosPrecipitaciones %>%
                    gather(key = Mes,
                           value = Precipitación,
                           -c(Departamento:Municipio))

str(PrecLargo)
## 'data.frame':    5400 obs. of  4 variables:
##  $ Departamento : Factor w/ 32 levels "Amazonas","Antioquia",..: 30 2 5 7 12 14 20 23 13 5 ...
##  $ Municipio    : Factor w/ 342 levels "Abrego","Agrado",..: 237 31 40 91 322 171 97 241 259 40 ...
##  $ Mes          : chr  "Enero" "Enero" "Enero" "Enero" ...
##  $ Precipitación: num  97.2 57.5 33.3 17.1 18 ...
head(PrecLargo)
##   Departamento  Municipio   Mes Precipitación
## 1       Tolima     Rovira Enero          97.2
## 2    Antioquia    Barbosa Enero          57.5
## 3    Bogota DC  Bogota DC Enero          33.3
## 4       Boyaca    Cuitiva Enero          17.1
## 5        Cesar Valledupar Enero          18.0
## 6      Cordoba   Monteria Enero          18.0
tail(PrecLargo)
##      Departamento            Municipio       Mes Precipitación
## 5395    Antioquia             Remedios Diciembre         132.7
## 5396 Cundinamarca               Bojaca Diciembre          70.9
## 5397 Cundinamarca               Yacopi Diciembre         156.7
## 5398       Tolima                Prado Diciembre         207.3
## 5399       Tolima            Chaparral Diciembre         280.7
## 5400       Narino San Andres de Tumaco Diciembre         206.1

Obteniendo total precipitaciones por mes.

Se obtiene la sumatoria de las precipitaciones filtrando por el mes, de ésta manera se obtiene el total de precipitaciones que se presentaron en cada mes durante los 30 años.

PrecLargoEnero <- PrecLargo %>% 
                      filter(Mes == "Enero")
SumEnero <- sum(PrecLargoEnero$Precipitación)

PrecLargoFebrero <- PrecLargo %>% 
                      filter(Mes == "Febrero")
SumFebrero <- sum(PrecLargoFebrero$Precipitación)

PrecLargoMarzo <- PrecLargo %>% 
                      filter(Mes == "Marzo")
SumMarzo <- sum(PrecLargoMarzo$Precipitación)

PrecLargoAbril <- PrecLargo %>% 
                      filter(Mes == "Abril")
SumAbril <- sum(PrecLargoAbril$Precipitación)

PrecLargoMayo <- PrecLargo %>% 
                      filter(Mes == "Mayo")
SumMayo <- sum(PrecLargoMayo$Precipitación)

PrecLargoJunio <- PrecLargo %>% 
                      filter(Mes == "Junio")
SumJunio <- sum(PrecLargoJunio$Precipitación)

PrecLargoJulio <- PrecLargo %>% 
                      filter(Mes == "Julio")
SumJulio <- sum(PrecLargoJulio$Precipitación)

PrecLargoAgosto <- PrecLargo %>% 
                      filter(Mes == "Agosto")
SumAgosto <- sum(PrecLargoAgosto$Precipitación)

PrecLargoSeptiembre <- PrecLargo %>% 
                      filter(Mes == "Septiembre")
SumSeptiembre <- sum(PrecLargoSeptiembre$Precipitación)

PrecLargoOctubre <- PrecLargo %>% 
                      filter(Mes == "Octubre")
SumOctubre <- sum(PrecLargoOctubre$Precipitación)

PrecLargoNoviembre <- PrecLargo %>% 
                      filter(Mes == "Noviembre")
SumNoviembre <- sum(PrecLargoNoviembre$Precipitación)

PrecLargoDiciembre <- PrecLargo %>% 
                      filter(Mes == "Diciembre")
SumDiciembre <- sum(PrecLargoDiciembre$Precipitación)

Sumas <- c(SumEnero, SumFebrero, SumMarzo, SumAbril, SumMayo, SumJunio, SumJulio, SumAgosto, SumSeptiembre, SumOctubre, SumNoviembre, SumDiciembre)

Meses <- c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")

PrecipTotales <- data.frame(Mes = Meses, Precipitaciones = Sumas)

Tabla y gráfico de precipitaciones totales por mes, para los 30 años.

Crear una tabla dinámica facilita la búsqueda de las observaciones ya sea por orden alfabético, ó , por orden ascendente o descendente de los valores. el gráfico de barras es una ayuda visual para observar el comportamiento de las precipitaciones, el uso de la función barplot como herramienta gŕafica permite generar un gráfico que permite una lectura e interpretación sencilla para el análisis.

library(DT)

datatable(PrecipTotales) %>%
  formatStyle(columns = c(1,2), 'text-align' = "center")
barplot(PrecipTotales$Precipitaciones, main="Precipitaciones totales por mes", xlab="Mes", ylab="Precipitaciones", names.arg=c("Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"), border="green", density = 150 , col = "blue", ylim = c(0 , 120000))

Obteniendo las precipitaciones totales por departamento.

Se obtiene las precipitaciones totales por departamento para observar la región con mayor precipitaciones a lo largo de los 30 años. Haciendo uso, nuevamente de la función filter, se filtra la información por departamento para hacer un análisis de las precipitaciones en cada uno de los 32 departamentos.

PrecLargoAtlan <- PrecLargo %>% 
                      filter(Departamento == "Atlantico")
SumAtlan <- sum(PrecLargoAtlan$Precipitación)

PrecLargoBoli <- PrecLargo %>% 
                      filter(Departamento == "Bolivar")
SumBoli <- sum(PrecLargoBoli$Precipitación)

PrecLargoCesar <- PrecLargo %>% 
                      filter(Departamento == "Cesar")
SumCesar <- sum(PrecLargoCesar$Precipitación)

PrecLargoCord <- PrecLargo %>% 
                      filter(Departamento == "Cordoba")
SumCord <- sum(PrecLargoCord$Precipitación)

PrecLargoGuaj <- PrecLargo %>% 
                      filter(Departamento == "La Guajira")
SumGuaj <- sum(PrecLargoGuaj$Precipitación)

PrecLargoMagd <- PrecLargo %>% 
                      filter(Departamento == "Magdalena")
SumMagd <- sum(PrecLargoMagd$Precipitación)

PrecLargoSanAnd <- PrecLargo %>% 
                      filter(Departamento == "San Andres Providencia y Sta C
")
SumSanAnd <- sum(PrecLargoSanAnd$Precipitación)

PrecLargoSucre <- PrecLargo %>% 
                      filter(Departamento == "Sucre")
SumSucre <- sum(PrecLargoSucre$Precipitación)

PrecLargoCau <- PrecLargo %>% 
                      filter(Departamento == "Cauca")
SumCau <- sum(PrecLargoCau$Precipitación)

PrecLargoChoco <- PrecLargo %>% 
                      filter(Departamento == "Choco")
SumChoco <- sum(PrecLargoChoco$Precipitación)

PrecLargoNari <- PrecLargo %>% 
                      filter(Departamento == "Narino")
SumNari <- sum(PrecLargoNari$Precipitación)

PrecLargoValle <- PrecLargo %>% 
                      filter(Departamento == "Valle del Cauca")
SumValle <- sum(PrecLargoValle$Precipitación)

PrecLargoAnt <- PrecLargo %>% 
                      filter(Departamento == "Antioquia")
SumAnt <- sum(PrecLargoAnt$Precipitación)

PrecLargoBoya <- PrecLargo %>% 
                      filter(Departamento == "Boyaca")
SumBoya <- sum(PrecLargoBoya$Precipitación)

PrecLargoCaldas <- PrecLargo %>% 
                      filter(Departamento == "Caldas")
SumCaldas <- sum(PrecLargoCaldas$Precipitación)

PrecLargoCund <- PrecLargo %>% 
                      filter(Departamento == "Cundinamarca")
SumCund <- sum(PrecLargoCund$Precipitación)

PrecLargoHuila <- PrecLargo %>% 
                      filter(Departamento == "Huila")
SumHuila <- sum(PrecLargoHuila$Precipitación)

PrecLargoNorS <- PrecLargo %>% 
                      filter(Departamento == "Norte de Santander")
SumNorS <- sum(PrecLargoNorS$Precipitación)

PrecLargoQuin <- PrecLargo %>% 
                      filter(Departamento == "Quindio")
SumQuin <- sum(PrecLargoQuin$Precipitación)

PrecLargoRisa <- PrecLargo %>% 
                      filter(Departamento == "Risaralda")
SumRisa <- sum(PrecLargoRisa$Precipitación)

PrecLargoSant <- PrecLargo %>% 
                      filter(Departamento == "Santander")
SumSant <- sum(PrecLargoSant$Precipitación)

PrecLargoTol <- PrecLargo %>% 
                      filter(Departamento == "Tolima")
SumTol <- sum(PrecLargoTol$Precipitación)

PrecLargoBog <- PrecLargo %>% 
                      filter(Departamento == "Bogota DC")
SumBog <- sum(PrecLargoBog$Precipitación)

PrecLargoAmaz <- PrecLargo %>% 
                      filter(Departamento == "Amazonas")
SumAmaz <- sum(PrecLargoAmaz$Precipitación)

PrecLargoCaque <- PrecLargo %>% 
                      filter(Departamento == "Caqueta")
SumCaque <- sum(PrecLargoCaque$Precipitación)

PrecLargoGua <- PrecLargo %>% 
                      filter(Departamento == "Guainia")
SumGua <- sum(PrecLargoGua$Precipitación)

PrecLargoGuav <- PrecLargo %>% 
                      filter(Departamento == "Guaviare")
SumGuav <- sum(PrecLargoGuav$Precipitación)

PrecLargoPutu <- PrecLargo %>% 
                      filter(Departamento == "Putumayo")
SumPutu <- sum(PrecLargoPutu$Precipitación)

PrecLargoAra <- PrecLargo %>% 
                      filter(Departamento == "Arauca")
SumAra <- sum(PrecLargoAra$Precipitación)

PrecLargoCasa <- PrecLargo %>% 
                      filter(Departamento == "Casanare")
SumCasa <- sum(PrecLargoCasa$Precipitación)

PrecLargoMeta <- PrecLargo %>% 
                      filter(Departamento == "Meta")
SumMeta <- sum(PrecLargoMeta$Precipitación)

PrecLargoVicha <- PrecLargo %>% 
                      filter(Departamento == "Vichada")
SumVicha <- sum(PrecLargoVicha$Precipitación)

sumasD <- c(SumAtlan,SumBoli,SumCesar,SumCord,SumGua,SumMagd,SumSanAnd,SumSucre,SumCau,SumChoco,SumNari,SumValle,SumAnt,SumBoya,SumCaldas,SumCund,SumHuila,SumNorS,SumQuin,SumRisa,SumSant,SumTol,SumBog,SumAmaz,SumCaque,SumGua,SumGuav,SumPutu,SumAra,SumCasa,SumMeta,SumVicha)

Departamentos <- c("Atlantico", "Bolivar", "Cesar", "Cordoba", "La Guajira", "Magdalena", "San Andres Providencia y Sta.C", "Sucre", "Cauca", "Choco", "Nariño", "Valle del Cauca", "Antioquia", "Boyacá", "Caldas", "Cundinamarca", "Huila", "Norte de Santander", "Quindío", "Risaralda", "Santander", "Tolima", "Bogotá DC", "Amazonas", "Caquetá", "Guainía", "Guaviare", "Putumayo", "Arauca", "Casanare", "Meta", "Vichada")

PrecDepartamentos <- data.frame(Departamento = Departamentos, Precipitaciones = sumasD)

Tabla y gráfico de precipitaciones totales para cada departamento.

Al generar la tabla de las precipitaciones por departamento se evidencia de manera más clara la información y el análisis hecho por departamento, siendo útil para ubicar por ejemplo el departamento con mayor o menos precipitaciones en lo corrido de los 30 años. El gráfico, generado con la librería ggplot2, muestra las precipitaciones para cada departamento, representadas por barras una junto a la otra, facilitando la lectura de los datos.

library(DT)

datatable(PrecDepartamentos) %>%
  formatStyle(columns = c(1,2), 'text-align' = "center")
library(ggplot2)
ggplot(data = PrecDepartamentos, aes(x = Departamentos, y = sumasD)) +
         geom_bar(stat = "identity", fill = "blue", color = "green") +
         geom_text(aes(label = sumasD),
                   position = position_identity(), vjust = -0.1,
                   color = "red",
                   size = 3) +
         labs(x = "Departamento",
              y = "Precipitaciones",
              title = "Precipitaciones totales por departamento") +
  theme_light() +
  theme(axis.text.x = element_text(size = 6.5, angle = 90))

Agrupar por regiones geográficas para representar las precipitaciones.

Filtrando los departamentos, se obtiene una organización de las diferentes regiones geográficas de Colombia, según el Instituto Geográfico Aguntín Codazzi; conformadas de la siguiente manera:

Región Pacífico : Cauca , Chocó, Nariño, Valle del Cauca

Región Orinoquía : Arauca, Casanare, Meta, Vichada

Región Amazonía : Amazonas, Caquetá, Guainía, Guaviare, Putumayo. (El departamento de Vaupés no aparece en los datos originales, por lo cual no aparece aquí representado)

Región Caribe : Atlántico, Bolívar, Cesar, Cordoba, La Guajira, Magdalena, San Andrés Providencia y Santa Catalina, Sucre.

Región Andina : Antioquia, Boyacá, Caldas, Cundinamarca, Huila, Norte de Santander, Quindío, Risaralda, Santander, Tolima, Bogotá DC.

library(dplyr)
library(tidyr)

PrecRegiónPacífico <- PrecDepartamentos  %>% 
                      filter(Departamento == c("Cauca", "Choco", "Nariño", "Valle del Cauca"))


PrecRegiónOrinoquía <- PrecDepartamentos  %>%
                      filter(Departamento == c("Arauca", "Casanare", "Meta", "Vichada"))


PrecRegiónAmazonía <- PrecDepartamentos  %>%
                      filter(Departamento == c("Amazonas", "Caquetá", "Guainía", "Guaviare", "Putumayo"))    
## Warning in is.na(e1) | is.na(e2): longitud de objeto mayor no es múltiplo
## de la longitud de uno menor
## Warning in `==.default`(Departamento, c("Amazonas", "Caquetá", "Guainía", :
## longitud de objeto mayor no es múltiplo de la longitud de uno menor
PrecRegiónCaribe <- PrecDepartamentos  %>%
                    filter(Departamento == c("Atlantico", "Bolivar", "Cesar", "Cordoba", "La Guajira", "Magdalena", "San Andres Providencia y Sta.C", "Sucre"))


PrecRegiónAndina <- PrecDepartamentos  %>%
                    filter(Departamento == c("Antioquia", "Boyacá", "Caldas", "Cundinamarca", "Huila", "Norte de Santander", "Quindío", "Risaralda", "Santander", "Tolima", "Bogotá DC"))
## Warning in is.na(e1) | is.na(e2): longitud de objeto mayor no es múltiplo
## de la longitud de uno menor
## Warning in `==.default`(Departamento, c("Antioquia", "Boyacá", "Caldas", :
## longitud de objeto mayor no es múltiplo de la longitud de uno menor

Gráficos por regiones geográficas. (Precipitaciones)

Los graficos para cada región permiten observar el departamento de cada región donde se presentaron mayor cantidad de precipitaciones totales en los 30 años.

library(ggplot2)

## región caribe
ggplot(data = PrecRegiónCaribe, aes(x = Departamento, y = Precipitaciones)) +
         geom_bar(stat = "identity", fill = "blue", color = "green") +
         geom_text(aes(label = Precipitaciones),
                   position = position_identity(), vjust = -0.1,
                   color = "red",
                   size = 3) +
         labs(x = "Departamento",
              y = "Precipitaciones",
              title = "Precipitaciones totales región Caribe") +
  theme_light() +
  theme(axis.text.x = element_text(size = 6.5, angle = 90))

## región Pacífico
ggplot(data = PrecRegiónPacífico, aes(x = Departamento, y = Precipitaciones)) +
         geom_bar(stat = "identity", fill = "blue", color = "green") +
         geom_text(aes(label = Precipitaciones),
                   position = position_identity(), vjust = -0.1,
                   color = "red",
                   size = 3) +
         labs(x = "Departamento",
              y = "Precipitaciones",
              title = "Precipitaciones totales región Pacífico") +
  theme_light() +
  theme(axis.text.x = element_text(size = 6.5, angle = 90))

## región Orinoquía

ggplot(data = PrecRegiónOrinoquía, aes(x = Departamento, y = Precipitaciones)) +
         geom_bar(stat = "identity", fill = "blue", color = "green") +
         geom_text(aes(label = Precipitaciones),
                   position = position_identity(), vjust = -0.1,
                   color = "red",
                   size = 3) +
         labs(x = "Departamento",
              y = "Precipitaciones",
              title = "Precipitaciones totales región Orinoquía") +
  theme_light() +
  theme(axis.text.x = element_text(size = 6.5, angle = 90))

Creando datos de Temperaturas.

library(dplyr)
library(tidyr)

datosTemperaturas <- datos %>% select(departamento, municipio, enetemp30a, febtemp30a, martemp30a, abrtemp30a, maytemp30a, juntemp30a, jultemp30a, agotemp30a, septemp30a, octtemp30a, novtemp30a, dictemp30a)

names(datosTemperaturas) <- c("Departamento","Municipio", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio" , "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")

head(datosTemperaturas)
##   Departamento  Municipio Enero Febrero Marzo Abril Mayo Junio Julio
## 1       Tolima     Rovira  16.7    16.9  17.0  17.2 17.2  17.0  16.8
## 2    Antioquia    Barbosa  21.9    22.2  22.3  22.1 22.1  22.2  22.1
## 3    Bogota DC  Bogota DC  13.8    13.9  14.0  14.0 14.1  14.0  13.8
## 4       Boyaca    Cuitiva  11.6    11.7  11.8  11.8 11.8  11.4  10.9
## 5        Cesar Valledupar  29.4    30.2  30.3  29.6 29.0  28.8  29.2
## 6      Cordoba   Monteria  27.0    27.2  27.5  27.6 27.4  27.5  27.4
##   Agosto Septiembre Octubre Noviembre Diciembre
## 1   17.1       17.2    17.0      16.8      16.8
## 2   22.2       22.0    21.7      21.7      21.7
## 3   13.8       13.7    13.8      13.8      13.9
## 4   10.9       11.2    11.4      11.6      11.8
## 5   29.0       28.0    27.7      27.8      28.3
## 6   27.4       27.1    27.0      27.0      27.0

Formato ancho a largo (Temperaturas)

library(dplyr)
library(tidyr)

TempLargo <- datosTemperaturas %>%
                    gather(key = Mes,
                           value = Temperatura,
                           -c(Departamento:Municipio))

str(TempLargo)
## 'data.frame':    5400 obs. of  4 variables:
##  $ Departamento: Factor w/ 32 levels "Amazonas","Antioquia",..: 30 2 5 7 12 14 20 23 13 5 ...
##  $ Municipio   : Factor w/ 342 levels "Abrego","Agrado",..: 237 31 40 91 322 171 97 241 259 40 ...
##  $ Mes         : chr  "Enero" "Enero" "Enero" "Enero" ...
##  $ Temperatura : num  16.7 21.9 13.8 11.6 29.4 27 28.5 21.1 20.6 10.5 ...
head(TempLargo)
##   Departamento  Municipio   Mes Temperatura
## 1       Tolima     Rovira Enero        16.7
## 2    Antioquia    Barbosa Enero        21.9
## 3    Bogota DC  Bogota DC Enero        13.8
## 4       Boyaca    Cuitiva Enero        11.6
## 5        Cesar Valledupar Enero        29.4
## 6      Cordoba   Monteria Enero        27.0
TempLargoEnero <- TempLargo %>% 
                      filter(Mes == "Enero")
PromEneroT <- mean(TempLargoEnero$Temperatura)

TempLargoFebrero <- TempLargo %>% 
                      filter(Mes == "Febrero")
PromFebreroT <- mean(TempLargoFebrero$Temperatura)

TempLargoMarzo <- TempLargo %>% 
                      filter(Mes == "Marzo")
PromMarzoT <- mean(TempLargoMarzo$Temperatura)

TempLargoAbril <- TempLargo %>% 
                      filter(Mes == "Abril")
PromAbrilT <- mean(TempLargoAbril$Temperatura)

TempLargoMayo <- TempLargo %>% 
                      filter(Mes == "Mayo")
PromMayoT <- mean(TempLargoMayo$Temperatura)

TempLargoJunio <- TempLargo %>% 
                      filter(Mes == "Junio")
PromJunioT <- mean(TempLargoJunio$Temperatura)

TempLargoJulio <- TempLargo %>% 
                      filter(Mes == "Julio")
PromJulioT <- mean(TempLargoJulio$Temperatura)

TempLargoAgosto <- TempLargo %>% 
                      filter(Mes == "Agosto")
PromAgostoT <- mean(TempLargoAgosto$Temperatura)

TempLargoSeptiembre <- TempLargo %>% 
                      filter(Mes == "Septiembre")
PromSeptiembreT <- mean(TempLargoSeptiembre$Temperatura)

TempLargoOctubre <- TempLargo %>% 
                      filter(Mes == "Octubre")
PromOctubreT <- mean(TempLargoOctubre$Temperatura)

TempLargoNoviembre <- TempLargo %>% 
                      filter(Mes == "Noviembre")
PromNoviembreT <- mean(TempLargoNoviembre$Temperatura)

TempLargoDiciembre <- TempLargo %>% 
                      filter(Mes == "Diciembre")
PromDiciembreT <- mean(TempLargoDiciembre$Temperatura)

PromediosT <- c(PromEneroT, PromFebreroT, PromMarzoT, PromAbrilT, PromMayoT, PromJunioT, PromJulioT, PromAgostoT, PromSeptiembreT, PromOctubreT, PromNoviembreT, PromDiciembreT)

PromediosT <- round(PromediosT, 3)

MesesT <- c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")


TempProm <- data.frame(Mes = MesesT, Temperaturas = PromediosT)

print(TempProm)
##           Mes Temperaturas
## 1       Enero       22.243
## 2     Febrero       22.471
## 3       Marzo       22.520
## 4       Abril       22.415
## 5        Mayo       22.323
## 6       Junio       22.208
## 7       Julio       22.157
## 8      Agosto       22.335
## 9  Septiembre       22.259
## 10    Octubre       22.051
## 11  Noviembre       21.988
## 12  Diciembre       22.040

Tabla y gráfico de temperaturas promedio para cada mes.

library(DT)


datatable(TempProm) %>%
  formatStyle(columns = c(1,2), 'text-align' = "center")
barplot(TempProm$Temperaturas, main="Temperaturas promedio por mes", xlab="Mes", ylab="Temperaturas", names.arg=c("Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"), border="orange", density = 150, col = "red", ylim = c(0 , 30) )

Temperaturas promedio por departamento.

TempLargoAtlan <- TempLargo %>% 
                      filter(Departamento == "Atlantico")
PromAtlan <- mean(TempLargoAtlan$Temperatura)

TempLargoBoli <- TempLargo %>% 
                      filter(Departamento == "Bolivar")
PromBoli <- mean(TempLargoBoli$Temperatura)

TempLargoCesar <- TempLargo %>% 
                      filter(Departamento == "Cesar")
PromCesar <- mean(TempLargoCesar$Temperatura)

TempLargoCord <- TempLargo %>% 
                      filter(Departamento == "Cordoba")
PromCord <- mean(TempLargoCord$Temperatura)

TempLargoGuaj <- TempLargo %>% 
                      filter(Departamento == "La Guajira")
PromGuaj <- mean(TempLargoGuaj$Temperatura)

TempLargoMagd <- TempLargo %>% 
                      filter(Departamento == "Magdalena")
PromMagd <- mean(TempLargoMagd$Temperatura)

TempLargoSanAnd <- TempLargo %>% 
                      filter(Departamento == "San Andres Providencia y Sta C
")
PromSanAnd <- mean(TempLargoSanAnd$Temperatura)

TempLargoSucre <- TempLargo %>% 
                      filter(Departamento == "Sucre")
PromSucre <- mean(TempLargoSucre$Temperatura)

TempLargoCau <- TempLargo %>% 
                      filter(Departamento == "Cauca")
PromCau <- mean(TempLargoCau$Temperatura)

TempLargoChoco <- TempLargo %>% 
                      filter(Departamento == "Choco")
PromChoco <- mean(TempLargoChoco$Temperatura)

TempLargoNari <- TempLargo %>% 
                      filter(Departamento == "Narino")
PromNari <- mean(TempLargoNari$Temperatura)

TempLargoValle <- TempLargo %>% 
                      filter(Departamento == "Valle del Cauca")
PromValle <- mean(TempLargoValle$Temperatura)

TempLargoAnt <- TempLargo %>% 
                      filter(Departamento == "Antioquia")
PromAnt <- mean(TempLargoAnt$Temperatura)

TempLargoBoya <- TempLargo %>% 
                      filter(Departamento == "Boyaca")
PromBoya <- mean(TempLargoBoya$Temperatura)

TempLargoCaldas <- TempLargo %>% 
                      filter(Departamento == "Caldas")
PromCaldas <- mean(TempLargoCaldas$Temperatura)

TempLargoCund <- TempLargo %>% 
                      filter(Departamento == "Cundinamarca")
PromCund <- mean(TempLargoCund$Temperatura)

TempLargoHuila <- TempLargo %>% 
                      filter(Departamento == "Huila")
PromHuila <- mean(TempLargoHuila$Temperatura)

TempLargoNorS <- TempLargo %>% 
                      filter(Departamento == "Norte de Santander")
PromNorS <- mean(TempLargoNorS$Temperatura)

TempLargoQuin <- TempLargo %>% 
                      filter(Departamento == "Quindio")
PromQuin <- mean(TempLargoQuin$Temperatura)

TempLargoRisa <- TempLargo %>% 
                      filter(Departamento == "Risaralda")
PromRisa <- mean(TempLargoRisa$Temperatura)

TempLargoSant <- TempLargo %>% 
                      filter(Departamento == "Santander")
PromSant <- mean(TempLargoSant$Temperatura)

TempLargoTol <- TempLargo %>% 
                      filter(Departamento == "Tolima")
PromTol <- mean(TempLargoTol$Temperatura)

TempLargoBog <- TempLargo %>% 
                      filter(Departamento == "Bogota DC")
PromBog <- mean(TempLargoBog$Temperatura)

TempLargoAmaz <- TempLargo %>% 
                      filter(Departamento == "Amazonas")
PromAmaz <- mean(TempLargoAmaz$Temperatura)

TempLargoCaque <- TempLargo %>% 
                      filter(Departamento == "Caqueta")
PromCaque <- mean(TempLargoCaque$Temperatura)

TempLargoGua <- TempLargo %>% 
                      filter(Departamento == "Guainia")
PromGua <- mean(TempLargoGua$Temperatura)

TempLargoGuav <- TempLargo %>% 
                      filter(Departamento == "Guaviare")
PromGuav <- mean(TempLargoGuav$Temperatura)

TempLargoPutu <- TempLargo %>% 
                      filter(Departamento == "Putumayo")
PromPutu <- mean(TempLargoPutu$Temperatura)

TempLargoAra <- TempLargo %>% 
                      filter(Departamento == "Arauca")
PromAra <- mean(TempLargoAra$Temperatura)

TempLargoCasa <- TempLargo %>% 
                      filter(Departamento == "Casanare")
PromCasa <- mean(TempLargoCasa$Temperatura)

TempLargoMeta <- TempLargo %>% 
                      filter(Departamento == "Meta")
PromMeta <- mean(TempLargoMeta$Temperatura)

TempLargoVicha <- TempLargo %>% 
                      filter(Departamento == "Vichada")
PromVicha <- mean(TempLargoVicha$Temperatura)

DeptosT <- c("Atlántico", "Bolívar", "Cesar", "Córdoba", "La Guajira", "Magdalena", "San Andrés Providencia y Sta. C", "Sucre", "Cauca", "Chocó", "Nariño", "Valle del Cauca", "Antioquia", "Boyacá", "Caldas", "Cundinamarca", "Huila", "Norte de Santander", "Quindío", "Risaralda", "Santander", "Tolima", "Bogotá DC", "Amazonas", "Caquetá", "Guainía", "Guaviare", "Putumayo", "Arauca", "Casanare", "Meta", "Vichada")

PromDeptos <- c(PromAtlan, PromBoli, PromCesar, PromCord, PromGuaj, PromMagd, PromSanAnd, PromSucre, PromCau, PromChoco, PromNari, PromValle, PromAnt, PromBoya, PromCaldas, PromCund, PromHuila, PromNorS, PromQuin, PromRisa, PromSant, PromTol, PromBog, PromAmaz, PromCaque, PromGua, PromGuav, PromPutu, PromAra, PromCasa, PromMeta, PromVicha)

PromDeptos <- round(PromDeptos, 3)

TempPromDep <- data.frame(Departamento = DeptosT , Temperaturas = PromDeptos)

head(TempPromDep)
##   Departamento Temperaturas
## 1    Atlántico       27.833
## 2      Bolívar       27.366
## 3        Cesar       28.335
## 4      Córdoba       27.573
## 5   La Guajira       27.927
## 6    Magdalena       26.206

Tabla y gŕafico de las temperaturas promedio por departamento.

library(DT)

datatable(TempPromDep) %>%
  formatStyle(columns = c(1,2), 'text-align' = "center")
library(ggplot2)
ggplot(data = TempPromDep, aes(x = Departamento, y = Temperaturas)) +
         geom_bar(stat = "identity", fill = "red", color = "orange") +
         geom_text(aes(label = Temperaturas),
                   position = position_identity(), vjust = -0.1,
                   color = "blue",
                   size = 3) +
         labs(x = "Departamento",
              y = "Temperaturas",
              title = "Temperaturas promedio por departamento") +
  theme_light() +
  theme(axis.text.x = element_text(size = 6.5, angle = 90))
## Warning: Removed 1 rows containing missing values (position_stack).
## Warning: Removed 1 rows containing missing values (geom_text).

Agrupar por regiones geográficas (TEMPERATURAS)

library(dplyr)
library(tidyr)

TempRegiónPacífico <- TempLargo  %>% 
                      filter(Departamento == c("Cauca", "Choco", "Narino", "Valle del Cauca"))


TempRegiónOrinoquía <- TempLargo  %>%
                      filter(Departamento == c("Arauca", "Casanare", "Meta", "Vichada"))


TempRegiónAmazonía <- TempLargo  %>%
                      filter(Departamento == c("Amazonas", "Caqueta", "Guainia", "Guaviare", "Putumayo" ))    


TempRegiónCaribe <- TempLargo  %>%
                    filter(Departamento == c("Atlantico", "Bolivar", "Cesar", "Cordoba", "La Guajira", "Magdalena", "San Andres Providencia y Sta C", "Sucre"))


TempRegiónAndina <- TempLargo  %>%
                    filter(Departamento == c("Antioquia", "Boyaca", "Caldas", "Cundinamarca", "Huila", "Norte de Santander", "Quindio", "Risaralda", "Santander", "Tolima", "Bogota DC"))
## Warning in is.na(e1) | is.na(e2): longitud de objeto mayor no es múltiplo
## de la longitud de uno menor
## Warning in `==.default`(Departamento, c("Antioquia", "Boyaca", "Caldas", :
## longitud de objeto mayor no es múltiplo de la longitud de uno menor

Gráficos por regiones geográficas.

library(ggplot2)

ggplot(TempRegiónAmazonía, aes(Departamento, Temperatura/1e3)) + 
  geom_bar(stat = "identity") + 
  xlab("Departamento") + ylab("Temperaturas") + 
  labs(title = "Temperaturas de la Región Amazonía")

ggplot(TempRegiónPacífico, aes(Departamento, Temperatura/1e3)) + 
  geom_bar(stat = "identity") + 
  xlab("Departamento") + ylab("Temperaturas") + 
  labs(title = "Temperaturas de la Región Pacífico")

ggplot(TempRegiónCaribe, aes(Departamento, Temperatura/1e3)) + 
  geom_bar(stat = "identity") + 
  xlab("Departamento") + ylab("Temperaturas") + 
  labs(title = "Temperaturas de la Región Caribe")

ggplot(TempRegiónAndina, aes(Departamento, Temperatura/1e3)) + 
  geom_bar(stat = "identity") + 
  xlab("Departamento") + ylab("Temperaturas") + 
  labs(title = "Temperaturas de la Región Andina")

ggplot(TempRegiónOrinoquía, aes(Departamento, Temperatura/1e3)) + 
  geom_bar(stat = "identity") + 
  xlab("Departamento") + ylab("Temperaturas") + 
  labs(title = "Temperaturas de la Región Orinoquía")