###P1 Cargue los paquetes y las bases necesarias para poder trabajar con la base de datos de personas, hogares y viajes de la Encuesta Origen y Destino en formato data.table y para poder realizar las vizualizaciones con ggplot. importante: la base de personas solo considera a la gente que trabaja. Por lo tanto, la actividad analiza solo personas que tienen trabajo.

install.packages("data.table")
## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'
## (as 'lib' is unspecified)
install.packages("ggplot2")
## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'
## (as 'lib' is unspecified)
install.packages("leaflet")
## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'
## (as 'lib' is unspecified)
library("data.table")
library("ggplot2")
library("leaflet")
Hogares<-fread("C2/Base_Hogares.csv")
## Warning in require_bit64_if_needed(ans): Some columns are type 'integer64'
## but package bit64 is not installed. Those columns will print as strange
## looking floating point data. There is no need to reload the data. Simply
## install.packages('bit64') to obtain the integer64 print method and print the
## data again.
Personas<-fread("C2/Base_Personas.csv")
## Warning in require_bit64_if_needed(ans): Some columns are type 'integer64'
## but package bit64 is not installed. Those columns will print as strange
## looking floating point data. There is no need to reload the data. Simply
## install.packages('bit64') to obtain the integer64 print method and print the
## data again.
Viajes<-fread("C2/Base_Viajes.csv")
## Warning in require_bit64_if_needed(ans): Some columns are type 'integer64'
## but package bit64 is not installed. Those columns will print as strange
## looking floating point data. There is no need to reload the data. Simply
## install.packages('bit64') to obtain the integer64 print method and print the
## data again.
Personas<-Personas[!IngresoFinal==0]

###P2 Realice un gráfico (legible) que permita ver el ingreso promedio de los hogares por macrozona. Considere que las personas se encuentran repetidos en la base de datos.

Hogares<-Hogares[!duplicated(Hogar)]

proming<-Hogares[,mean(IngresoHogar),by="Macrozona"]

ggplot(proming,aes(x=Macrozona, weights=V1))+geom_bar() +labs(x="Macrozona",y="Ingreso Promedio", title = "Ingreso Promedio por Macrozona",caption = "Fuente: Encuesta")

###P3 Realice un histograma con ggplot que muestre la distribución del ingreso de los hogares para las comunas del Gran Valparaíso. Es decir, un histograma para cada comuna, pero en un mismo gráfico. Considere los factores de expansión de las personas. Además, limite el ingreso a menos de 2000000.

ggplot(Hogares[IngresoHogar<2000000],aes(x=Comuna,weights=Factor, y=IngresoHogar)) + geom_histogram(stat = "identity")+scale_y_continuous(labels = function(n){format(n,scientific = FALSE)})
## Warning: Ignoring unknown parameters: binwidth, bins, pad

###P4

###a Para poder tener un mejor análisis de mercado, es necesario analizar las características del hogar y de las personas que lo componen. Para esto, cree un objeto “EOD” que sea un merge entre la base de hogares y personas, dado el identificador de hogares.

EOD<-merge(x=Hogares, y=Personas, by="Hogar")

####b Reemplaza el objeto “EOD” con un merge entre la base EOD y viajes, dados los identificadores de hogares y de personas. De esta forma, tendrá información más detallada de las familias, las personas y los flujos de viajes. Pista: el argumento by puede contener dos variables, pero deben incluirse en un vector, de la forma …,by=c(“variable1”,“variable2”)

EOD<-merge(x=EOD,y=Viajes,by=c("Hogar","Persona"))

###c Además cree una variable que sea un identificador de hogares y personas para poder eliminar los duplicados (utilice paste0 para crear esta variable).

EOD[,HP:=paste0(Hogar,Persona)]

###P5 Un cliente cautivo es un consumidor que por condiciones externa, se le hace difícil sustituir un producto o servicio, ya que esto implica un costo para él, ya sea monetario o de esfuerzo.Dado este contexto, consumidores cautivos podrían ser aquellas personas que no poseen licencia de conducir, porque para ellos es más costoso en términos de tiempo, dinero y esfuerzo movilizarse entre macrozonas para comer otras hamburgesas que las que se encuentran cerca suyo. Es por esto que queremos identificar cuántas personas sin licencia existen en cada macrozona(Macrozonahg). Para ello, realice un gráfico de barras e identifique a los consumidores cautivos que no tienen licencia, por macrozona.

ggplot(EOD[!duplicated("Hogar","Persona")&LicenciaConducir==1],aes(x=Macrozona, y=LicenciaConducir)) + geom_bar(stat = "identity")+theme(axis.text.x = element_text(angle=90, vjust=0.6))

###P6 Cree una variable Rango, que tome como valor los distintos rangos de edades de las personas. “Rango1: 18-25” “Rango2: 26-35” “Rango3: 36-55” “Rango4: +56”

EOD[,edad:=2014-AnoNac]
EOD[edad>=18 & edad<=25, Rango:="Rango1"]
EOD[edad>=26 & edad<=35, Rango:="Rango2"]
EOD[edad>=36 & edad<=55, Rango:="Rango3"]
EOD[edad>=56, Rango:="Rango4"]

###P7 Muestre en un gráfico de barras la cantidad de personas que hay en cada macrozona según el rango de edades que definió en la pregunta anterior.

ggplot(EOD,aes(x=Rango,fill=Comuna))+geom_histogram(stat = "count")+facet_wrap(facets = "Comuna")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.6))
## Warning: Ignoring unknown parameters: binwidth, bins, pad

###P8 Cargue la base de datos de locales hamburguesas para analizar donde se encuentra la competencia.

Hamburguesas <- fread("C2/restaurantes.csv")

###P9 Cree un scatter-plot con ggplot que muestre la relación entre el número de comentarios (reviews) (eje x) y el rating (eje y).

ggplot(Hamburguesas, aes(x=reviews, y=rating)) + geom_point()

###P10 Ahora queremos analizar el nivel de competencia que existe por macrozona. Para realizar esto, debe crear un identificador de competencia para cada macrozona. El indicador esta definido como Icompetencia=(reviews∗rating)1000¯ para cada macrozona.

Identcomp<-Hamburguesas[,mean(reviews*rating,na.rm = T)/1000,by=MacrozonaOrigen1]

###P11 Ubique en un mapa los diferentes locales de hamburguesas.

class(Hamburguesas$lat)
## [1] "numeric"
class(Hamburguesas$lng)
## [1] "numeric"
Hamburguesas$lat<-as.numeric(Hamburguesas$lat)
Hamburguesas$lng<-as.numeric(Hamburguesas$lng)
leaflet(Hamburguesas[!duplicated(Hamburguesas$lat)]) %>%
  addTiles() %>%
  setView(lng = -71.5, lat = -33, zoom = 11)%>%
  addMarkers()
## Assuming "lng" and "lat" are longitude and latitude, respectively

###P12 Dado el indicador de competencias creado anteriormente y todo el análisis socioeconómico de las macrozonas ¿En qué comuna ubicaría el nuevo local de hamburguesas? Apoyese con una visualización de datos espaciales. Utilice el shp provisto para estos fines en la carpeta GV y sea cuidadoso con el encoding