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 = ";")