library(tidyverse)
## ── Attaching packages ──────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.2.1 ✔ purrr 0.3.3
## ✔ tibble 2.1.3 ✔ dplyr 0.8.3
## ✔ tidyr 1.0.0 ✔ stringr 1.4.0
## ✔ readr 1.3.1 ✔ forcats 0.4.0
## ── Conflicts ─────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library(geosphere)
library(dplyr)
options(scipen = 999)
grouped_result <- read_csv("/local/juninho/aggregate_output/output/result.csv", col_types = list(
date = col_date(format = ""),
week_day = col_double(),
route = col_character(),
start_hour = col_double(),
end_hour = col_double(),
quantity_trips = col_double(),
duration_median = col_double(),
dist_median = col_double()
)
)
- Há uma relação entre a distância das viagens e a tempo delas?
grouped_result %>%
ggplot(aes(x = dist_median, y = duration_median, alpha = .001)) %>%
+ geom_point() + theme_classic()

- Quais as rotas que, na mediana, percorrem uma maior distância?
grouped_result %>%
group_by(route) %>%
summarise(median_dist = median(dist_median)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -median_dist), y = median_dist)) + labs(x = "route") + geom_col() + theme_classic()
## Selecting by median_dist

- Quais as rotas que, na mediana, percorrem uma menor distância?
grouped_result %>%
group_by(route) %>%
summarise(median_dist = median(dist_median)) %>%
top_n(-20) %>%
ggplot(aes(x = reorder(route, median_dist), y = median_dist)) + labs(x = "route") + geom_col() + theme_classic()
## Selecting by median_dist

- Quais as rotas mais populares, ou seja, aquelas com mais viagens (levando em consideração o passageiro) durante todo o período?
grouped_result %>%
group_by(route) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -quantity), y = quantity)) + labs(x = "route", y = "trip quantity") + geom_bar(stat = "identity") + theme_classic()
## Selecting by quantity

- Quais as rotas menos populares, ou seja, aquelas com menos viagens (levando em consideração o passageiro) durante todo o dia?
grouped_result %>%
group_by(route) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(-20) %>%
ggplot(aes(x = reorder(route, quantity), y = quantity)) +
labs(x = "route", y = "trip quantity") +
geom_bar(stat = "identity") +
theme_classic()
## Selecting by quantity

- Quais as rotas cujas viagens são mais demoradas na mediana?
grouped_result %>%
group_by(route) %>%
summarise(duration = median(duration_median)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -duration), y = duration)) +
labs(x = "route", y = "trip duration (in minutes)") +
geom_bar(stat = "identity") +
theme_classic()
## Selecting by duration

- Quais as rotas cujas viagens são mais rápidas na mediana?
grouped_result %>%
group_by(route) %>%
summarise(duration = median(duration_median)) %>%
top_n(-20) %>%
ggplot(aes(x = reorder(route, duration), y = duration)) +
labs(x = "route", y = "trip duration (in minutes)") +
geom_bar(stat = "identity") +
theme_classic()
## Selecting by duration

- Quais as rotas mais populares (lotadas) das 6h as 8h?
grouped_result %>%
group_by(route) %>%
filter(start_hour >= 6 & start_hour <= 8) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -quantity), y = quantity)) +
labs(x = "route", y = "trips quantity") +
geom_col() +
theme_classic()
## Selecting by quantity

- Quais as rotas mais populares (lotadas) das 11h as 13h?
grouped_result %>%
group_by(route) %>%
filter(start_hour >= 11 & start_hour <= 13) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -quantity), y = quantity)) +
labs(x = "route", y = "trips quantity") +
geom_col() +
theme_classic()
## Selecting by quantity

- Quais as rotas mais populares (lotadas) das 17h as 19h?
grouped_result %>%
group_by(route) %>%
filter(start_hour >= 17 & start_hour <= 19) %>%
summarise(quantity = sum(quantity_trips)) %>%
top_n(20) %>%
ggplot(aes(x = reorder(route, -quantity), y = quantity)) +
labs(x = "route", y = "trips quantity") +
geom_col() +
theme_classic()
## Selecting by quantity

- A rota 204 apresenta comportamento interessante. Na faixa de horário das 17h as 18h a mesma apresenta uma quantidade de viagens 57% menor do que na faixa de horário das 6h as 8h. Vamos ver a distribuição da quantidade de viagens da rota ao longo de todo o dia.
grouped_result %>%
filter(route == "204") %>%
group_by(start_hour) %>%
summarise(quantity = sum(quantity_trips)) %>%
ggplot(aes(x = start_hour, y = quantity)) + geom_col() + theme_bw()

- Iremos analisar agora a rota 506, outra rota que mostra variação na quantidade de viagens nos horários de pico. Fez 13155 das 17h às 19h e 29755 das 6h às 8h, 56% a mais do que no outro horário.
grouped_result %>%
filter(route == "506") %>%
group_by(start_hour) %>%
summarise(quantity = sum(quantity_trips)) %>%
ggplot(aes(x = start_hour, y = quantity)) + geom_col() + theme_classic()

- Iremos analisar agora a rota 550, pois a mesma apresenta uma forte queda na quantidade de viagens no horário de 11h as 13h. Nesse horário ela fez apenas 7017 viagens, enquanto que nos horários de 6h as 8h e de 17h as 19h fez 38679 e 17603, respectivamente.
grouped_result %>%
filter(route == "550") %>%
group_by(start_hour) %>%
summarise(quantity = sum(quantity_trips)) %>%
ggplot(aes(x = start_hour, y = quantity)) + geom_col() + theme_classic()
