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()
  )
)
  1. 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() 

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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()

  1. 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()

  1. 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()