CHUNK PARA PROCESAR DATOS

EL objetivo de este proyecto es crear un codigo para facilitar la agilidad de creacion de variables en el programa estadistico R, ya que el mismo soporta una gran cantidad de volumen de datos y facilita la creacion diaria de variables. Al finalizar el codigo traslada el la base de datos a un formato csv para que el usuario tenga un resapaldo de sus datos,

# Importar base de datos --------------------------------------------------


Reporte.Base.General <- read.csv(file = "D:/Descargas/Reporte Base General.csv",sep = ";",encoding = "UTF-8")


table(Reporte.Base.General$Tipo.de.Visa=="RP")
## 
## FALSE 
## 16021
str(Reporte.Base.General$Tipo.de.Visa)
##  Factor w/ 79 levels "","10-AI","10-III EC",..: 1 1 1 1 1 76 1 1 1 75 ...
levels(Reporte.Base.General$Tipo.de.Visa)[levels(Reporte.Base.General$Tipo.de.Visa)=="RP"] <- "RP-"



# generar variable hora ---------------------------------------------------

Reporte.Base.General$hora <- format(as.POSIXct(Reporte.Base.General$Hora.de.Movimiento, "%H:%M:%S", tz = "")
                                          , format = "%H")
             
str(Reporte.Base.General$hora)
##  chr [1:16021] "00" "00" "00" "00" "00" "00" "00" "00" "00" "00" "00" "00" ...
table(format(as.POSIXct(Reporte.Base.General$Hora.de.Movimiento, "%H:%M:%S", tz = "")
                        , format = "%H"))
## 
##   00   01   02   03   04   05   06   07   08   09   10   11   12   13   14   15 
## 1464  391  414  537  363  115  364  917  895  775  635  594  353  845  438  411 
##   16   17   18   19   20   21   22   23 
## 1348 1156  631  238  423  411 1081 1222
# generar rango de hora ---------------------------------------------------
# duplico la variable
Reporte.Base.General$RANGO_DE_HORAS <- Reporte.Base.General$hora
# Cambio el texto al que pertenece
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="01")]= "de 22 a 6 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="02")]= "de 22 a 6 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="03")]= "de 22 a 6 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="04")]= "de 22 a 6 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="05")]= "de 22 a 6 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="06")]= "de 6 a 14 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="07")]= "de 6 a 14 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="08")]= "de 6 a 14 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="09")]= "de 6 a 14 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="10")]= "de 6 a 14 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="11")]= "de 6 a 14 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="12")]= "de 6 a 14 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="13")]= "de 6 a 14 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="14")]= "de 14 a 22 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="15")]= "de 14 a 22 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="16")]= "de 14 a 22 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="17")]= "de 14 a 22 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="18")]= "de 14 a 22 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="19")]= "de 14 a 22 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="20")]= "de 14 a 22 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="21")]= "de 14 a 22 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="22")]= "de 22 a 6 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="23")]= "de 22 a 6 horas"
Reporte.Base.General$RANGO_DE_HORAS[which(Reporte.Base.General$RANGO_DE_HORAS=="00")]= "de 22 a 6 horas"
table(Reporte.Base.General$RANGO_DE_HORAS)
## 
## de 14 a 22 horas  de 22 a 6 horas  de 6 a 14 horas 
##             5056             5587             5378
table(Reporte.Base.General$Documento)
## < table of extent 0 >
sum( table(Reporte.Base.General$Documento))
## [1] 0
#Cambiar la nacionalidad del documento a NACIONALES y ECUATORIANOS
Reporte.Base.General$NACIONAL_EXTRANJERO <- ifelse(Reporte.Base.General$Nacionalidad.del.documento=="ECUADOR","NACIONALES","EXTRANJEROS")
table(Reporte.Base.General$NACIONAL_EXTRANJERO)
## 
## EXTRANJEROS  NACIONALES 
##        7009        9012
# Orden de los paises ---------------------------------------------------------------
Reporte.Base.General$Nacionalidad.del.documento <- as.character(Reporte.Base.General$Nacionalidad.del.documento)
str(Reporte.Base.General$Nacionalidad.del.documento)
##  chr [1:16021] "ECUADOR" "ECUADOR" "ECUADOR" "ECUADOR" "ECUADOR" "PANAMA" ...
Reporte.Base.General$Nacionalidad.del.documento[which(Reporte.Base.General$Nacionalidad.del.documento=="ESPAÑA")] <- "ESPANA"
table(Reporte.Base.General$Nacionalidad.del.documento)
## 
##                         ALBANIA                        ALEMANIA 
##                               1                             160 
##                         ANDORRA                         ARGELIA 
##                               3                               1 
##                       ARGENTINA                         ARMENIA 
##                             185                               1 
##                       AUSTRALIA                         AUSTRIA 
##                              78                              13 
##                         BELGICA                          BELICE 
##                              41                               2 
##                     BIELORRUSIA                         BOLIVIA 
##                               2                              25 
##                          BRASIL                        BULGARIA 
##                              80                               2 
##                         CAMERUN                          CANADA 
##                               1                             219 
##                           CHILE                           CHINA 
##                             182                             122 
##                          CHIPRE                        COLOMBIA 
##                               1                            1481 
##                   COREA DEL SUR                      COSTA RICA 
##                              28                              34 
##                         CROACIA                            CUBA 
##                               3                              78 
##                       DINAMARCA                         ECUADOR 
##                              22                            9012 
##                     EL SALVADOR                      ESLOVAQUIA 
##                              25                               3 
##                       ESLOVENIA                          ESPANA 
##                               1                             541 
##          ESTADOS UNIDOS AMERICA                       FILIPINAS 
##                            1397                              74 
##                       FINLANDIA                         FRANCIA 
##                               4                              95 
##                         GEORGIA                           GHANA 
##                               2                               2 
##                          GRECIA                       GUATEMALA 
##                               5                              33 
##                           HAITI                         HOLANDA 
##                               2                             120 
##                        HONDURAS                       HONG KONG 
##                               8                               2 
##                         HUNGRIA                           INDIA 
##                              13                              11 
##                       INDONESIA                            IRAN 
##                               3                               8 
##                         IRLANDA                          ISRAEL 
##                               9                              18 
##                          ITALIA                           JAPON 
##                             130                              37 
##                      KAZAJISTAN                         LETONIA 
##                               2                              10 
##                          LIBANO                        LITUANIA 
##                               4                               2 
##                         MALASIA                            MALI 
##                               2                               3 
##                       MARRUECOS                          MEXICO 
##                               3                             164 
##                         MYANMAR                       NICARAGUA 
##                               9                               6 
##                         NORUEGA                   NUEVA ZELANDA 
##                               5                               7 
##                        PAKISTAN                          PANAMA 
##                               1                             108 
##                        PARAGUAY                            PERU 
##                               5                             573 
##                         POLONIA                        PORTUGAL 
##                               7                              12 
##                     REINO UNIDO                 REPUBLICA CHECA 
##                             111                              21 
##           REPÚBLICA DE MOLDAVIA REPUBLICA DEMOCRATICA DEL CONGO 
##                               1                               1 
##            REPUBLICA DOMINICANA                         RUMANIA 
##                              19                              14 
##                           RUSIA          SAN CRISTOBAL Y NIEVES 
##                              48                               1 
##                          SERBIA                        SINGAPUR 
##                               1                               3 
##                           SIRIA                       SRI LANKA 
##                               1                               2 
##                          SUECIA                           SUIZA 
##                              46                              48 
##                          TAIWAN                         TURQUIA 
##                               3                               3 
##                         UCRANIA                         URUGUAY 
##                              39                              15 
##                       VENEZUELA 
##                             401
ORDEN_PAISES <- c()
for (i in 1:nrow(Reporte.Base.General)){
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "ECUADOR") ORDEN_PAISES[i] = "S ECUATORIANOS" else 
        ORDEN_PAISES[i] = "OTRAS NACIONALIDADES"
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "VENEZUELA") ORDEN_PAISES[i] = 1
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "ESTADOS UNIDOS AMERICA") ORDEN_PAISES[i] = 2
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "COLOMBIA") ORDEN_PAISES[i] = 3
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "PERU") ORDEN_PAISES[i] = 4
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "ESPANA") ORDEN_PAISES[i] = 5
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "FRANCIA") ORDEN_PAISES[i] = 6
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "ALEMANIA") ORDEN_PAISES[i] = 7
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "CHILE") ORDEN_PAISES[i] = 8
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "REINO UNIDO") ORDEN_PAISES[i] = 9
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "ARGENTINA") ORDEN_PAISES[i] = 10
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "CANADA") ORDEN_PAISES[i] = 11
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "ITALIA") ORDEN_PAISES[i] = 12
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "MEXICO") ORDEN_PAISES[i] = 13
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "HOLANDA") ORDEN_PAISES[i] = 14
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "CHINA") ORDEN_PAISES[i] = 15
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "BRASIL") ORDEN_PAISES[i] = 16
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "FILIPINAS") ORDEN_PAISES[i] = 17
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "CUBA") ORDEN_PAISES[i] = 18
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "PANAMA") ORDEN_PAISES[i] = 19
    if(Reporte.Base.General$Nacionalidad.del.documento[i] == "SUIZA") ORDEN_PAISES[i] = 20
    
    
}

table(ORDEN_PAISES)
## ORDEN_PAISES
##                    1                   10                   11 
##                  401                  185                  219 
##                   12                   13                   14 
##                  130                  164                  120 
##                   15                   16                   17 
##                  122                   80                   74 
##                   18                   19                    2 
##                   78                  108                 1397 
##                   20                    3                    4 
##                   48                 1481                  573 
##                    5                    6                    7 
##                  541                   95                  160 
##                    8                    9 OTRAS NACIONALIDADES 
##                  182                  111                  740 
##       S ECUATORIANOS 
##                 9012
Reporte.Base.General$Nacionalidad.del.documento[which(Reporte.Base.General$Nacionalidad.del.documento=="ESPANA")] <- "ESPAÑA"
Reporte.Base.General$Nacionalidad.del.documento <- as.factor(Reporte.Base.General$Nacionalidad.del.documento)
str(Reporte.Base.General$Nacionalidad.del.documento)
##  Factor w/ 87 levels "ALBANIA","ALEMANIA",..: 26 26 26 26 26 64 26 26 26 31 ...
# VEN y OTROS -------------------------------------------------------------------------

VEN_Y_OTROS <- numeric()
for(i in 1:nrow(Reporte.Base.General)){
    if(Reporte.Base.General$Nacionalidad.del.documento[i]=="VENEZUELA") VEN_Y_OTROS[i] = "VENEZOLANOS" else
        VEN_Y_OTROS[i] = "EXTRANJEROS"
    if(Reporte.Base.General$Nacionalidad.del.documento[i]=="ECUADOR") VEN_Y_OTROS[i] = "ECUATORIANOS"
        
}
table(VEN_Y_OTROS)
## VEN_Y_OTROS
## ECUATORIANOS  EXTRANJEROS  VENEZOLANOS 
##         9012         6608          401
Reporte.Base.General$ORDEN_PAISES <- ORDEN_PAISES
Reporte.Base.General$VEN_Y_OTROS <- VEN_Y_OTROS



# CREAR VISA DE NACIONALIDAD ----------------------------------------------


Reporte.Base.General$visa_NAC <- with(Reporte.Base.General, ifelse(NACIONAL_EXTRANJERO== "NACIONALES" & 
                                    Tipo.de.Visa == '' ,"ECUATORIANO",""))
head(Reporte.Base.General$visa_NAC)
## [1] "ECUATORIANO" "ECUATORIANO" "ECUATORIANO" "ECUATORIANO" "ECUATORIANO"
## [6] ""
table(Reporte.Base.General$visa_NAC)
## 
##             ECUATORIANO 
##        7009        9012
# CREAR VISA DE INTERNACIONALIDAD -----------------------------------------
Reporte.Base.General$visa_EXT <- with(Reporte.Base.General, ifelse(NACIONAL_EXTRANJERO== "EXTRANJEROS" & 
                                                                       Tipo.de.Visa == '' ,"TURISTA",""))
table(Reporte.Base.General$visa_EXT)
## 
##         TURISTA 
##   15040     981
# TOTAL VISAS -------------------------------------------------------------


Reporte.Base.General$TOTAL_VISAS <- paste(Reporte.Base.General$Tipo.de.Visa,Reporte.Base.General$visa_NAC,
                                          Reporte.Base.General$visa_EXT,sep = "")
table(Reporte.Base.General$TOTAL_VISAS)
## 
##       10-AI   10-III EC    10-IV EC   10-IV EXT    10-VI EC     12 I EC 
##           2           2           1           1           6           8 
##   12 III EC    12 XI EC   12 XI EXT        9-AI   9-III EXT        9-IV 
##           7           1           4           1           1           1 
##    9-IV ECU   9-VII ECU        9 AI      9 I EC        9 II     9 II EC 
##           5           1           5          15           1          22 
##    9 II EXT    9 III EC   9 III EXT     9 IV EC    9 IV EXT      9 V EC 
##           4           6           1          31           1          92 
##     9 V ECU     9 V EXT        9 VI     9 VI EC    9 VI EXT   9 VII ECU 
##           1           5           2         199          16          23 
##   9 VII EPR      C.C.E.     COL-ECU         D-I        D-II        D-IV 
##           1           2           4           8           5           4 
## ECUATORIANO      RP-CAF  RP-FAM.MEN      RP-MAT    RP-MATRI      RP-MER 
##        9012           3           3           3          15          13 
##   RP-PARENT  RP-T.PERMA      RP-UNA   RP-UNASUR  RP-UNIÓN.H         RP  
##          30          10           9          42           1           1 
##  RT-AMP-T-C     RT-AMP.   RT-AMPARO  RT-CONF.EP      RT-DEP    RT-ESTUD 
##           5           4           3           7           1           5 
##  RT-EXC-APC  RT-EXC-HUM  RT-EXC-INS   RT-EXC-MH    RT-EXCEP  RT-GES.CUL 
##           1          18           4           5           9           1 
##    RT-INVER     RT-JUBI      RT-MER  RT-MER.AMP      RT-PRO  RT-PRO.INT 
##          16           6          89           2           2           1 
##  RT-PROFESI      RT-REL    RT-RELIG     RT-TRAB      RT-UNA   RT-UNASUR 
##          13           1           4          59           1         133 
##  RT-VOL-REL   RT-VOLUNT         T-3  TRIPULANTE     TURISTA  VT-ESP-TUR 
##           1           6        4450         544         981           1 
##      VT-TUR   VT-TUR-CU 
##          15           2
#VISAS_DIARIAS para crear TOTAL VISAS
library(readxl)
base_grupos_migratorios_1 <- read_excel(path = "D:/Descargas/base de grupos migratorios.xlsx",sheet = 1)

a<-table(Reporte.Base.General$TOTAL_VISAS)

class(a)
## [1] "table"
a<- as.data.frame(a)
a<- data.frame(a)
a <- a[,c(-2)]
a<- data.frame(a)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 3.6.1
## -- Attaching packages ----------------------------------------------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.2.1     v purrr   0.3.3
## v tibble  2.1.3     v dplyr   1.0.1
## v tidyr   1.0.0     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.4.0
## Warning: package 'ggplot2' was built under R version 3.6.1
## Warning: package 'tibble' was built under R version 3.6.1
## Warning: package 'tidyr' was built under R version 3.6.1
## Warning: package 'purrr' was built under R version 3.6.1
## Warning: package 'dplyr' was built under R version 3.6.3
## -- Conflicts -------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(dplyr)
names(a)[names(a) == "a"] <- "VISAS"
BASE_MERGE <- merge(a,base_grupos_migratorios_1, by.x = "VISAS",by.y = "VISAS",all.x = T)
library(xlsx)

library(readxl)

MERGE <- merge(Reporte.Base.General,BASE_MERGE, by.x = "TOTAL_VISAS",by.y = "VISAS",all.x = T)
GRUPO_MIGRATORIO <- MERGE$`GRUPO MIGRATORIO`
# Crear columna de documentos ---------------------------------------------
base_de_documentos <- read_excel(path = "D:/Descargas/BASE DE DOCUMENTOS DE VIAJE.xlsx",sheet = 1)
tipo<-table(Reporte.Base.General$Tipo.de.Documento)

class(tipo)
## [1] "table"
tipo<- as.data.frame(tipo)
tipo<- data.frame(tipo)

tipo <- tipo[,c(-2)]
tipo<- data.frame(tipo)
library(tidyverse)
library(dplyr)
names(tipo)[names(tipo) == "tipo"] <- "Tipo_de_documento"
TIPO_DE_DOCUMENTOS_HOY <- merge(tipo,base_de_documentos,
                                by.x = "Tipo_de_documento",by.y = "TIPO DE DOCUMENTO",all.x = T,all.y = FALSE)

# Segundo MErge -----------------------------------------------------------


library(xlsx)
MERGE_1 <- merge(MERGE,TIPO_DE_DOCUMENTOS_HOY, by.x = "Tipo.de.Documento",
               by.y = "Tipo_de_documento",all.x = T)

names(MERGE_1)[names(MERGE_1)=="GRUPO"] <- "documentos"

drops <- c("X","X.1")
MERGE_1<- MERGE_1[ , !(names(MERGE_1) %in% drops)]
MERGE_1 <- MERGE_1[,c(3:46,1,2)]

MERGE_1 <- MERGE_1[,c(1:5,36:37,6:17,45,44,18:20,38:40,21:22,41,42,46,43,23:35)]
library(data.table)
## Warning: package 'data.table' was built under R version 3.6.1
## 
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
## The following object is masked from 'package:purrr':
## 
##     transpose
#MERGE<- MERGE[duplicated(MERGE$`GRUPO MIGRATORIO`=="RP"), ]

# IMPRIMIR DOCUMENTO ------------------------------------------------------

write.table(MERGE_1,file = "Reporte.csv",sep = ";")