Arreglo de la base de datos meteorológicos para Colombia.

Lectura de la base de datos cruda.

meteorSep <- read.csv2("diario.csv", enc = "utf8", skip = 7)
dim(meteorSep)
## [1]  89 179

Limpieza o depuración de la base de datos.

Número de columnas de interés

# Número de columnas de interés
names(meteorSep)
##   [1] "AEROPUERTO"   "X1"           "X2"           "X3"          
##   [5] "X4"           "X5"           "X6"           "X7"          
##   [9] "X8"           "X9"           "X10"          "X11"         
##  [13] "X12"          "X13"          "X14"          "X15"         
##  [17] "X16"          "X17"          "X18"          "X19"         
##  [21] "X20"          "X21"          "X22"          "X23"         
##  [25] "X24"          "X25"          "X26"          "X27"         
##  [29] "X28"          "X29"          "X30"          "X31"         
##  [33] "TOTAL"        "X"            "ESTACION"     "X1.1"        
##  [37] "X2.1"         "X3.1"         "X4.1"         "X5.1"        
##  [41] "X6.1"         "X7.1"         "X8.1"         "X9.1"        
##  [45] "X10.1"        "X11.1"        "X12.1"        "X13.1"       
##  [49] "X14.1"        "X15.1"        "X16.1"        "X17.1"       
##  [53] "X18.1"        "X19.1"        "X20.1"        "X21.1"       
##  [57] "X22.1"        "X23.1"        "X24.1"        "X25.1"       
##  [61] "X26.1"        "X27.1"        "X28.1"        "X29.1"       
##  [65] "X30.1"        "X31.1"        "X.1"          "ESTACION.1"  
##  [69] "X1.2"         "X2.2"         "X3.2"         "X4.2"        
##  [73] "X5.2"         "X6.2"         "X7.2"         "X8.2"        
##  [77] "X9.2"         "X10.2"        "X11.2"        "X12.2"       
##  [81] "X13.2"        "X14.2"        "X15.2"        "X16.2"       
##  [85] "X17.2"        "X18.2"        "X19.2"        "X20.2"       
##  [89] "X21.2"        "X22.2"        "X23.2"        "X24.2"       
##  [93] "X25.2"        "X26.2"        "X27.2"        "X28.2"       
##  [97] "X29.2"        "X30.2"        "X31.2"        "X.2"         
## [101] "ESTACION.2"   "X1.3"         "X2.3"         "X3.3"        
## [105] "X4.3"         "X5.3"         "X6.3"         "X7.3"        
## [109] "X8.3"         "X9.3"         "X10.3"        "X11.3"       
## [113] "X12.3"        "X13.3"        "X14.3"        "X15.3"       
## [117] "X16.3"        "X17.3"        "X18.3"        "X19.3"       
## [121] "X20.3"        "X21.3"        "X22.3"        "X23.3"       
## [125] "X24.3"        "X25.3"        "X26.3"        "X27.3"       
## [129] "X28.3"        "X29.3"        "X30.3"        "X31.3"       
## [133] "X1.4"         "X.3"          "X.4"          "X.5"         
## [137] "X.6"          "X.7"          "X.8"          "X.9"         
## [141] "X.10"         "X.11"         "X.12"         "X.13"        
## [145] "X.14"         "X.15"         "X.16"         "AÑO"         
## [149] "ESTACION.3"   "VIENEN"       "X.17"         "X.18"        
## [153] "X.19"         "X.20"         "X.21"         "X.22"        
## [157] "X.23"         "X.24"         "X.25"         "X.26"        
## [161] "X.27"         "X.28"         "X.29"         "AÑO.1"       
## [165] "ESTACION.4"   "VIENEN.1"     "AEROPUERTO.1" "X9.4"        
## [169] "EN.EL.MES"    "MENSUAL"      "EN.EL.MES.1"  "MENSUAL.1"   
## [173] "RELEVANTE"    "X9.5"         "X0"           "X9.6"        
## [177] "X0.1"         "X10.4"        "X.30"
ncolumnas <- which(names(meteorSep) == "X31.3")
ncolumnas
## [1] 132

Número de filas de interés

meteorSep$AEROPUERTO
##  [1] San Andrés      Providencia     Santa Marta     Cartagena      
##  [5] Barranquilla    Riohacha        Valledupar      Montería       
##  [9] Barrancabermeja Bucaramanga     Cúcuta          Apartadó       
## [13] Medellín        Rionegro        Pereira         Armenia        
## [17] Ibagué          Bogotá Eldorado Cali            Neiva          
## [21] Pasto/Chachagüí Ipiales         Quibdó          Arauca         
## [25] Puerto Carreño  Villavicencio   Leticia                        
## [29] SP              PV              SM              CG             
## [33] BQ              RH              VP              MR             
## [37] MR              EJ              LC              OT             
## [41] EJ              BG              CC              LC             
## [45] MD              RG              PE              AR             
## [49] IB              BO              CL              NV             
## [53] PS              IP              UI              UI             
## [57] UC              PC              VV              LT             
## [61]                 SP              PV              SM             
## [65] CG              BQ              RH              VP             
## [69] MR              EJ              BG              CC             
## [73] LC              MD              RG              PE             
## [77] AR              IB              BO              CL             
## [81] NV              PS              IP              UI             
## [85] UI              UC              PC              VV             
## [89] LT             
## 56 Levels:  Apartadó AR Arauca Armenia Barrancabermeja Barranquilla ... VV
nfilas <- which(meteorSep$AEROPUERTO == "Leticia")
nfilas
## [1] 27

Selección de los datos de interés

meteorSep <- droplevels(meteorSep[1:nfilas,1:ncolumnas])
head(meteorSep)
##     AEROPUERTO  X1  X2   X3    X4   X5  X6   X7   X8   X9 X10 X11 X12 X13
## 1   San Andrés 0.2 0.1  0.7 147.6 58.3 0.1 18.9  6.3  2.3  NA  NA  NA  NA
## 2  Providencia 0.0 5.4 11.3  70.7 64.4 0.0  0.4 20.1 14.0  NA  NA  NA  NA
## 3  Santa Marta 0.0 0.5 22.1   0.0  0.0 0.0  0.0  0.1  0.0  NA  NA  NA  NA
## 4    Cartagena 0.0 9.2  9.6   0.0  0.0 0.0  0.3  0.0  0.1  NA  NA  NA  NA
## 5 Barranquilla 0.0 0.9 34.3   0.0  0.0 0.0  3.2  0.0 11.7  NA  NA  NA  NA
## 6     Riohacha 0.0 0.0  2.0   0.0  0.0 0.0 20.2  0.0  0.0  NA  NA  NA  NA
##   X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31
## 1  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
## 2  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
## 3  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
## 4  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
## 5  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
## 6  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
##   TOTAL  X     ESTACION X1.1 X2.1 X3.1 X4.1 X5.1 X6.1 X7.1 X8.1 X9.1 X10.1
## 1 234,5 NA   San Andrés 29.0 29.0 28.4 27.6 26.2 28.7 28.7 27.9 27.3    NA
## 2 186,3 NA  Providencia 28.9 28.6 28.2 27.8 25.4 29.0 28.7 29.1 27.1    NA
## 3  22,7 NA  Santa Marta 29.9 28.5 27.2 29.1 29.9 28.7 29.6 29.0 29.9    NA
## 4  19,2 NA    Cartagena 28.9 28.9 27.9 29.2 29.8 29.2 29.7 28.8 27.8    NA
## 5  50,1 NA Barranquilla 30.4 29.7 26.4 27.8 28.5 29.2 27.4 28.4 28.2    NA
## 6  22,2 NA     Riohacha 31.8 30.6 30.9 29.5 30.5 32.4 26.4 29.3 31.7    NA
##   X11.1 X12.1 X13.1 X14.1 X15.1 X16.1 X17.1 X18.1 X19.1 X20.1 X21.1 X22.1
## 1    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 2    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 3    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 4    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 5    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 6    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
##   X23.1 X24.1 X25.1 X26.1 X27.1 X28.1 X29.1 X30.1 X31.1 X.1   ESTACION.1
## 1    NA    NA    NA    NA    NA    NA    NA    NA    NA  NA   San Andrés
## 2    NA    NA    NA    NA    NA    NA    NA    NA    NA  NA  Providencia
## 3    NA    NA    NA    NA    NA    NA    NA    NA    NA  NA  Santa Marta
## 4    NA    NA    NA    NA    NA    NA    NA    NA    NA  NA    Cartagena
## 5    NA    NA    NA    NA    NA    NA    NA    NA    NA  NA Barranquilla
## 6    NA    NA    NA    NA    NA    NA    NA    NA    NA  NA     Riohacha
##   X1.2 X2.2 X3.2 X4.2 X5.2 X6.2 X7.2 X8.2 X9.2 X10.2 X11.2 X12.2 X13.2
## 1 31.4 30.9 30.3 29.5 27.4 30.6 30.4 30.4 29.4    NA    NA    NA    NA
## 2 31.9 31.4 30.8 29.7 27.2 31.0 30.9 31.5 29.3    NA    NA    NA    NA
## 3 35.0 33.4 32.2 33.0 33.0 33.4 33.2 32.6 33.0    NA    NA    NA    NA
## 4 34.4 33.6 31.8 33.0 34.4 32.6 33.6 32.3 33.6    NA    NA    NA    NA
## 5 35.1 34.3 33.6 32.3 34.8 33.2 35.4 32.8 35.6    NA    NA    NA    NA
## 6 36.7 36.4 35.5 34.9 35.1 37.1 34.6 34.9 37.2    NA    NA    NA    NA
##   X14.2 X15.2 X16.2 X17.2 X18.2 X19.2 X20.2 X21.2 X22.2 X23.2 X24.2 X25.2
## 1    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 2    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 3    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 4    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 5    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 6    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
##   X26.2 X27.2 X28.2 X29.2 X30.2 X31.2 X.2   ESTACION.2 X1.3 X2.3 X3.3 X4.3
## 1    NA    NA    NA    NA    NA    NA  NA   San Andrés 27.6 27.0 27.4 26.8
## 2    NA    NA    NA    NA    NA    NA  NA  Providencia 26.5 26.8 26.2 24.9
## 3    NA    NA    NA    NA    NA    NA  NA  Santa Marta 25.2 26.8 24.8 24.2
## 4    NA    NA    NA    NA    NA    NA  NA    Cartagena 27.4 27.3 23.8 24.6
## 5    NA    NA    NA    NA    NA    NA  NA Barranquilla 27.5 27.0 24.8 23.9
## 6    NA    NA    NA    NA    NA    NA  NA     Riohacha 22.4 27.3 28.0 22.9
##   X5.3 X6.3 X7.3 X8.3 X9.3 X10.3 X11.3 X12.3 X13.3 X14.3 X15.3 X16.3 X17.3
## 1 23.5 24.0 27.8 23.6 25.5  26.0    NA    NA    NA    NA    NA    NA    NA
## 2 23.2 23.2 27.9 28.0 25.5  24.5    NA    NA    NA    NA    NA    NA    NA
## 3 24.8 26.2 25.6 25.4 25.2  24.8    NA    NA    NA    NA    NA    NA    NA
## 4 26.6 26.3 26.4 26.0 26.4  26.4    NA    NA    NA    NA    NA    NA    NA
## 5 25.8 26.2 25.6 23.9 25.3  23.8    NA    NA    NA    NA    NA    NA    NA
## 6 25.8 26.7 27.2 23.0 27.4  27.2    NA    NA    NA    NA    NA    NA    NA
##   X18.3 X19.3 X20.3 X21.3 X22.3 X23.3 X24.3 X25.3 X26.3 X27.3 X28.3 X29.3
## 1    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 2    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 3    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 4    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 5    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
## 6    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
##   X30.3 X31.3
## 1    NA    NA
## 2    NA    NA
## 3    NA    NA
## 4    NA    NA
## 5    NA    NA
## 6    NA    NA

Selección de partes de la base de datos por cada variable.

bd1 <- subset(meteorSep, select=X1:X31)
names(bd1) <- 1:31
bd2 <- subset(meteorSep, select=X1.1:X31.1)
names(bd2) <- 1:31
bd3 <- subset(meteorSep, select=X1.2:X31.2)
names(bd3) <- 1:31
bd4 <- subset(meteorSep, select=X1.3:X31.3)
names(bd4) <- 1:31

# Reunir las variables en una sola base de datos.
bdT <- rbind(bd1,bd2,bd3,bd4)
head(bdT)
##     1   2    3     4    5   6    7    8    9 10 11 12 13 14 15 16 17 18 19
## 1 0.2 0.1  0.7 147.6 58.3 0.1 18.9  6.3  2.3 NA NA NA NA NA NA NA NA NA NA
## 2 0.0 5.4 11.3  70.7 64.4 0.0  0.4 20.1 14.0 NA NA NA NA NA NA NA NA NA NA
## 3 0.0 0.5 22.1   0.0  0.0 0.0  0.0  0.1  0.0 NA NA NA NA NA NA NA NA NA NA
## 4 0.0 9.2  9.6   0.0  0.0 0.0  0.3  0.0  0.1 NA NA NA NA NA NA NA NA NA NA
## 5 0.0 0.9 34.3   0.0  0.0 0.0  3.2  0.0 11.7 NA NA NA NA NA NA NA NA NA NA
## 6 0.0 0.0  2.0   0.0  0.0 0.0 20.2  0.0  0.0 NA NA NA NA NA NA NA NA NA NA
##   20 21 22 23 24 25 26 27 28 29 30 31
## 1 NA NA NA NA NA NA NA NA NA NA NA NA
## 2 NA NA NA NA NA NA NA NA NA NA NA NA
## 3 NA NA NA NA NA NA NA NA NA NA NA NA
## 4 NA NA NA NA NA NA NA NA NA NA NA NA
## 5 NA NA NA NA NA NA NA NA NA NA NA NA
## 6 NA NA NA NA NA NA NA NA NA NA NA NA
# Tomar el nombre de las estaciones
Estaciones <- meteorSep$AEROPUERTO

# Llevar el nombre de las estaciones a la base de datos
bdT$Estación <- Estaciones

# Identificar el nombre de las variables
variables <- c("precip", "tmedia", "tmax", "tmin")

# Llevar el nombre de las estaciones a la base de datos.
bdT$variables <- rep(variables,each = nrow(meteorSep))
head(bdT)
##     1   2    3     4    5   6    7    8    9 10 11 12 13 14 15 16 17 18 19
## 1 0.2 0.1  0.7 147.6 58.3 0.1 18.9  6.3  2.3 NA NA NA NA NA NA NA NA NA NA
## 2 0.0 5.4 11.3  70.7 64.4 0.0  0.4 20.1 14.0 NA NA NA NA NA NA NA NA NA NA
## 3 0.0 0.5 22.1   0.0  0.0 0.0  0.0  0.1  0.0 NA NA NA NA NA NA NA NA NA NA
## 4 0.0 9.2  9.6   0.0  0.0 0.0  0.3  0.0  0.1 NA NA NA NA NA NA NA NA NA NA
## 5 0.0 0.9 34.3   0.0  0.0 0.0  3.2  0.0 11.7 NA NA NA NA NA NA NA NA NA NA
## 6 0.0 0.0  2.0   0.0  0.0 0.0 20.2  0.0  0.0 NA NA NA NA NA NA NA NA NA NA
##   20 21 22 23 24 25 26 27 28 29 30 31     Estación variables
## 1 NA NA NA NA NA NA NA NA NA NA NA NA   San Andrés    precip
## 2 NA NA NA NA NA NA NA NA NA NA NA NA  Providencia    precip
## 3 NA NA NA NA NA NA NA NA NA NA NA NA  Santa Marta    precip
## 4 NA NA NA NA NA NA NA NA NA NA NA NA    Cartagena    precip
## 5 NA NA NA NA NA NA NA NA NA NA NA NA Barranquilla    precip
## 6 NA NA NA NA NA NA NA NA NA NA NA NA     Riohacha    precip
# Ordenar las variables en la base de datos
bdT <- bdT[c("Estación", "variables", 1:31)]
head(bdT)
##       Estación variables   1   2    3     4    5   6    7    8    9 10 11
## 1   San Andrés    precip 0.2 0.1  0.7 147.6 58.3 0.1 18.9  6.3  2.3 NA NA
## 2  Providencia    precip 0.0 5.4 11.3  70.7 64.4 0.0  0.4 20.1 14.0 NA NA
## 3  Santa Marta    precip 0.0 0.5 22.1   0.0  0.0 0.0  0.0  0.1  0.0 NA NA
## 4    Cartagena    precip 0.0 9.2  9.6   0.0  0.0 0.0  0.3  0.0  0.1 NA NA
## 5 Barranquilla    precip 0.0 0.9 34.3   0.0  0.0 0.0  3.2  0.0 11.7 NA NA
## 6     Riohacha    precip 0.0 0.0  2.0   0.0  0.0 0.0 20.2  0.0  0.0 NA NA
##   12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
## 1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## 2 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## 3 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## 4 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## 5 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
## 6 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

Arreglo de la base de datos

require(reshape2)
## Loading required package: reshape2
bdT2 <- melt(bdT, c("Estación", "variables"), 
             variable.name = "dia",
             value.name = "valor")
bdT2$dia <- as.integer(bdT2$dia)
bdT3 <- dcast(bdT2, Estación + dia ~ variables, value.var = "valor" )
head(bdT3)
##   Estación dia precip tmax tmedia tmin
## 1 Apartadó   1  130.9 33.6   28.7 25.2
## 2 Apartadó   2    1.1 28.6   25.6 23.0
## 3 Apartadó   3   32.2 32.8   28.5 23.9
## 4 Apartadó   4    0.0 32.1   27.9 23.1
## 5 Apartadó   5    2.5 33.9   29.0 24.1
## 6 Apartadó   6    0.3 30.2   27.8 23.6
require(plyr)
## Loading required package: plyr
bdT3$Estación <- factor(bdT3$Estación, levels = Estaciones)
bdT3 <- arrange(bdT3,Estación,dia)
head(bdT3)
##     Estación dia precip tmax tmedia tmin
## 1 San Andrés   1    0.2 31.4   29.0 27.6
## 2 San Andrés   2    0.1 30.9   29.0 27.0
## 3 San Andrés   3    0.7 30.3   28.4 27.4
## 4 San Andrés   4  147.6 29.5   27.6 26.8
## 5 San Andrés   5   58.3 27.4   26.2 23.5
## 6 San Andrés   6    0.1 30.6   28.7 24.0

Resumen estadístico de la base de datos

summary(bdT3)
##          Estación        dia         precip           tmax     
##  San Andrés  : 31   Min.   : 1   Min.   :  0.0   Min.   :12.0  
##  Providencia : 31   1st Qu.: 8   1st Qu.:  0.0   1st Qu.:29.2  
##  Santa Marta : 31   Median :16   Median :  0.0   Median :32.0  
##  Cartagena   : 31   Mean   :16   Mean   :  6.5   Mean   :30.6  
##  Barranquilla: 31   3rd Qu.:24   3rd Qu.:  2.4   3rd Qu.:33.7  
##  Riohacha    : 31   Max.   :31   Max.   :147.6   Max.   :38.0  
##  (Other)     :651                NA's   :594     NA's   :594   
##      tmedia          tmin     
##  Min.   : 8.2   Min.   : 1.2  
##  1st Qu.:24.1   1st Qu.:18.2  
##  Median :27.1   Median :22.9  
##  Mean   :25.5   Mean   :20.8  
##  3rd Qu.:28.9   3rd Qu.:24.8  
##  Max.   :32.4   Max.   :28.0  
##  NA's   :594    NA's   :567

Quitar los valores faltantes únicamente donde todos sean valores faltantes.

vf <- with(bdT3,is.na(precip) & is.na(tmax) & is.na(tmedia) & is.na(tmin))
bdT3 <- bdT3[!vf,]
summary(bdT3)
##          Estación        dia           precip            tmax     
##  San Andrés  : 10   Min.   : 1.0   Min.   :  0.00   Min.   :12.0  
##  Providencia : 10   1st Qu.: 3.0   1st Qu.:  0.00   1st Qu.:29.2  
##  Santa Marta : 10   Median : 5.5   Median :  0.00   Median :32.0  
##  Cartagena   : 10   Mean   : 5.5   Mean   :  6.46   Mean   :30.6  
##  Barranquilla: 10   3rd Qu.: 8.0   3rd Qu.:  2.35   3rd Qu.:33.7  
##  Riohacha    : 10   Max.   :10.0   Max.   :147.60   Max.   :38.0  
##  (Other)     :210                  NA's   :27       NA's   :27    
##      tmedia          tmin     
##  Min.   : 8.2   Min.   : 1.2  
##  1st Qu.:24.1   1st Qu.:18.2  
##  Median :27.1   Median :22.9  
##  Mean   :25.5   Mean   :20.8  
##  3rd Qu.:28.9   3rd Qu.:24.8  
##  Max.   :32.4   Max.   :28.0  
##  NA's   :27