Commit a62405ce authored by numeroteca's avatar numeroteca

fix resumen of hosts and create better html tables

parent 18f1e592
---
title: "Efecto Airbnb en Barcelona: hosts y licencias"
title: "Efecto Airbnb en Valencia: hosts y licencias"
date: "`r Sys.Date()`"
output: html_document
---
......@@ -36,7 +36,7 @@ fecha_mes <- "Septiembre 2018"
# coord_x <- c(-3.7533, -3.6100)
# coord_y <- c(40.5078,40.3601)
# Valencia
coord_x <- c(-0.4102, -0.3268)
coord_x <- c(-0.4102, -0.326)
coord_y <- c(39.4933,39.4482)
# Captions
......@@ -63,7 +63,6 @@ library(rgdal)
# local_activo <- read.delim("../../airbnb.madrid.analisis/data/original/airbnb/180911/listings_madrid_insideairbnb.csv",sep = ",")
local_activo <- read.delim("../data/original/airbnb/190227/listings_valencia_insideairbnb.csv",sep = ",")
# local_activo <- read.delim("../../airbnbeuskadi/data/original/euskadi/insideairbnb/2018-09-27/data/listings-donosti-insideairbnb.csv",sep = ",")
table(local_activo$city)
# Translate room type
levels(local_activo$room_type) <- c("Vivienda completa","Habitación privada","Habitación compartida")
......@@ -82,15 +81,16 @@ local_activo[local_activo$calculated_host_listings_count > 14,]$host.type.m <- "
# clasifica si tiene licencia
local_activo$license.type <- ""
local_activo[local_activo$license == "",]$license.type <- "no aparece registro"
local_activo[local_activo$license == "Exempt",]$license.type <- "exenta"
local_activo[!local_activo$license == "Exempt" & !local_activo$license == "",]$license.type <- "indica registro"
# local_activo[local_activo$license == "Exempt",]$license.type <- "exenta"
# local_activo[!local_activo$license == "Exempt" & !local_activo$license == "",]$license.type <- "indica registro"
local_activo[ !local_activo$license == "",]$license.type <- "indica registro"
attach(local_activo)
# Load shapes
barrios <- readOGR("data/original/shapes/barrios.valencia.wgs84.geojson")
distritos <- readOGR("data/original/shapes/distritos.valencia.wgs84.geojson")
municipios <- readOGR("data/original/shapes/municipios.provincia.valencia.geojson")
barrios <- readOGR("../data/original/shapes/barrios.valencia.wgs84.geojson")
distritos <- readOGR("../data/original/shapes/distritos.valencia.wgs84.geojson")
municipios <- readOGR("../data/original/shapes/municipios.provincia.valencia.geojson")
# Define paleta de color
# palette1 <- c("#2171b5","#6baed6","#bdd7e7","#fee5d9")
......@@ -113,13 +113,23 @@ De esos anuncios `r format(nrow(local_activo[!(local_activo$license==""),]), big
Estos anuncios (listings, en la terminología de Airbnb) han sido publicados por `r format(length(unique(local_activo$host_id)), big.mark='.')` anfitriones.
```{r tablas_01, echo = FALSE, warning=FALSE, message=FALSE}
kable(table(local_activo$host.type,local_activo$room_type))
table(local_activo$host.type,local_activo$room_type) %>% knitr::kable("html") %>%
kable_styling("striped", full_width = F)
```
```{r tablas_01b, echo = FALSE, warning=FALSE, message=FALSE}
kable(table(local_activo$host.type.m,local_activo$room_type))
table(local_activo$host.type.m,local_activo$room_type) %>% knitr::kable("html") %>%
kable_styling("striped", full_width = F)
```
```{r tablas_01bb, echo = FALSE, warning=FALSE, message=FALSE}
table(local_activo$city) %>% knitr::kable("html") %>%
kable_styling("striped", full_width = F)
```
```{r map_1, echo = FALSE, warning=FALSE, eval=TRUE, fig.width=9, fig.height=6}
ggplot() +
......@@ -244,6 +254,8 @@ guides(colour = guide_legend(override.aes = list(size=3))) +
Calculado por anuncios activos desde .
### 50 anfitriones con más alojamientos
```{r table_propietarios.1a, echo = FALSE, warning=FALSE, eval=TRUE}
# propietarios <- table(local_activo$host_id) #crea tabla con frecuencias (count) de anfitriones (host_id) con anuncios
n_alojamientos <- local_activo %>% group_by(host_id, host_name) %>% summarize(alojamientos = n(),plazas = sum(accommodates) ) %>% arrange(desc(alojamientos))
......@@ -253,23 +265,33 @@ n_alojamientos.url <- local_activo %>% group_by(host_id, host_name,host_picture_
# download images of top 10 hosts
# images.hosts <- n_alojamientos.url[1:10,]$host_thumbnail_url
for (i in 1:25) {
print(i)
print(n_alojamientos.url$host_picture_url[i])
print(paste("../data/original/airbnb/180911/images/top-",i,".jpg",sep=""))
download.file(as.character(n_alojamientos.url$host_picture_url[i]),
destfile=paste("../data/original/airbnb/180911/images/top-",i,"-",substr(n_alojamientos.url$host_name[i], start=1, stop=3),".jpg",sep=""),
method = "wget")
download.file(as.character(n_alojamientos.url$host_picture_url[i]),
destfile=paste("../data/original/airbnb/180911/images/tophost-",i,".jpg",sep=""),
method = "wget")
}
# for (i in 1:25) {
# print(i)
# print(n_alojamientos.url$host_picture_url[i])
# print(paste("../data/original/airbnb/180911/images/top-",i,".jpg",sep=""))
# download.file(as.character(n_alojamientos.url$host_picture_url[i]),
# destfile=paste("../data/original/airbnb/190227/images/top-",i,"-",substr(n_alojamientos.url$host_name[i], start=1, stop=3),".jpg",sep=""),
# method = "wget")
# download.file(as.character(n_alojamientos.url$host_picture_url[i]),
# destfile=paste("../data/original/airbnb/190227/images/tophost-",i,".jpg",sep=""),
# method = "wget")
# }
# n_alojamientos <- data.frame(n_alojamientos[1:50,]) # crea data frame
kable(n_alojamientos[1:50,2:4],caption = "Los 25 anfitriones con más alojamientos")
kable(n_alojamientos[1:10,2:4],caption = "Los 10 anfitriones con más alojamientos")
# Los 50 anfitriones con más alojamientos"
n_alojamientos[1:50,2:4] %>% knitr::kable("html") %>%
kable_styling("striped", full_width = F)
```
### Los 10 anfitriones con más alojamientos
```{r table_propietarios.1aa, echo = FALSE, warning=FALSE, eval=TRUE}
n_alojamientos[1:10,2:4] %>% knitr::kable("html") %>%
kable_styling("striped", full_width = F)
# propietarios_nalojamientos[1:30,]
# nalojamientos <- donostia %>%
# group_by(host_id) %>%
......@@ -412,11 +434,12 @@ guides(colour = guide_legend(override.aes = list(size=3))) +
```
```{r anfitriones_map_toploop, echo = FALSE, warning=FALSE, eval=TRUE}
# for (i in 1:16) {
# coord_x <- c(-0.4102, -0.32)
# for (i in 1:10) {
# j <- as.character(i)
# if (i < 10) { j <- paste(0,as.character(i),sep="") }
#
# png(filename=paste("images/airbnb/hosts/top",j,"-hosts-bcn-092018.png", sep = ""), width = 300, height = 190 )
# png(filename=paste("../images/airbnb/hosts/top",j,"-hosts-vlc-201902.png", sep = ""), width = 300, height = 190 )
# p1 <- ggplot() +
# geom_polygon(data = municipios,
# aes(x = long, y = lat, group = group),
......@@ -428,7 +451,7 @@ guides(colour = guide_legend(override.aes = list(size=3))) +
# # aes(x=longitude, y=latitude),alpha=0.02,size = 0.3)+
# geom_point(data= local_activo[local_activo$host_id %in% n_alojamientos[i,]$host_id,],
# aes(x=longitude, y=latitude, color=room_type),alpha=0.5,size = 1.2) + #color="blue"
# coord_fixed(xlim= coord_x,ylim=coord_y,ratio=1.3 ) +
# coord_fixed(xlim= coord_x,ylim=coord_y,ratio=1.3 ) +
# # coord_quickmap(xlim=coord_x, ylim=coord_y) +
# theme_nothing(legend = TRUE) +
# theme_minimal(base_family = "Roboto Condensed", base_size = 12) +
......@@ -441,7 +464,7 @@ guides(colour = guide_legend(override.aes = list(size=3))) +
# plot.caption=element_text(size=9)
# ) +
# labs(
# title= paste("Top ", i,": ", local_activo[local_activo$host_id %in% n_alojamientos[i,]$host_id,]$host_name, ". ", nrow(local_activo[host_id %in% n_alojamientos[i,]$host_id,]), " alojamientos", sep = "")
# title= paste("Top ", i,": ", local_activo[local_activo$host_id %in% n_alojamientos[i,]$host_id,]$host_name, ". ", nrow(local_activo[local_activo$host_id %in% n_alojamientos[i,]$host_id,]), " alojamientos", sep = "")
# ) +
# guides(colour = guide_legend(override.aes = list(size=3)))
# print(p1)
......@@ -626,7 +649,12 @@ ggplot(data=n_alojamientos, aes(alojamientos)) +
naccommodates <- group_by(local_activo, host_id, host_name) %>% summarise( plazas = sum(accommodates),alojamientos = n() ) %>% arrange(desc(plazas))
# naccommodates[1:30,]
kable(naccommodates[1:30,],caption = "Los 30 anfitriones con más plazas")
# naccommodates[1:30,] %>% knitr::kable("html",caption = "Los 30 anfitriones con más plazas") %>%
# kable_styling("striped", full_width = F)
naccommodates[1:30,]%>% knitr::kable("html",caption = "Los 30 anfitriones con más plazas") %>%
kable_styling("striped", full_width = F)
ggplot(naccommodates) +
geom_bar(stat='identity', aes(x = reorder(host_id,plazas), y = plazas)) + coord_flip() + theme(axis.text.y = element_blank()) +
......@@ -830,21 +858,28 @@ n_hosts <- length(unique(local_activo$host_id))
n_acommodates <- sum(local_activo$accommodates)
```
```{r cacula, echo = FALSE, warning=FALSE,, eval=TRUE}
# format(round(100*10/n_hosts, 1), nsmall = 1)
# sum(n_accommodates)
# format(round(100*sum(naccommodates[1:10,3])/n_acommodates, 1), nsmall = 1)
```
### Resumen
Los 10 primeros anfitriones (`r format(round(100*10/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:10,3])` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:10,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 10 primeros anfitriones (`r format(round(100*10/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:10,]$plazas)` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:10,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 20 primeros anfitriones (`r format(round(100*20/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:20,3])` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:20,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 20 primeros anfitriones (`r format(round(100*20/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:20,]$plazas)` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:20,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 50 primeros anfitriones (`r format(round(100*50/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:50,3])` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:50,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 50 primeros anfitriones (`r format(round(100*50/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:50,]$plazas)` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:50,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 100 primeros anfitriones (`r format(round(100*100/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:100,3])` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:100,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 100 primeros anfitriones (`r format(round(100*100/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:100,]$plazas)` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:100,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 200 primeros anfitriones (`r format(round(100*200/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:200,3])` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:200,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 200 primeros anfitriones (`r format(round(100*200/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:200,]$plazas)` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:200,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 300 primeros anfitriones (`r format(round(100*300/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:300,3])` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:300,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 300 primeros anfitriones (`r format(round(100*300/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:300,]$plazas)` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:300,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 500 primeros anfitriones (`r format(round(100*500/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:500,3])` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:500,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
Los 500 primeros anfitriones (`r format(round(100*500/n_hosts, 1), nsmall = 1)`% del total de anfitriones) con más plazas tienen `r sum(naccommodates[1:500,]$plazas)` plazas disponibles (que son el `r format(round(100*sum(naccommodates[1:500,3])/n_acommodates, 1), nsmall = 1)`% del total de plazas).
## Licencias
......@@ -857,11 +892,15 @@ licencias <- as.data.frame(table(local_activo$license))
licencias <- group_by(local_activo, license) %>% summarise( alojamientos = n() ) %>% arrange(desc(alojamientos))
kable(licencias[1:50,])
licencias[1:50,] %>% knitr::kable("html",caption = "Los 50 licencias más repetidas") %>%
kable_styling("striped", full_width = F)
kable(table(local_activo$license.type,local_activo$room_type))
table(local_activo$license.type,local_activo$room_type) %>% knitr::kable("html") %>%
kable_styling("striped", full_width = F)
kable(table(local_activo$license.type,local_activo$host.type))
table(local_activo$license.type,local_activo$host.type)%>% knitr::kable("html") %>%
kable_styling("striped", full_width = F)
```
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment