Aula 2 Objetivos

  • Ganhar confiança transformando um data frame para o escopo, a estrutura e a medida apropriados para analisar

Processando dados - Uma Lista de Ações

Primeiro, ações que definem o escopo de nossos dados:

Processing Data: Dados Originais

flights

Processando dados: Dados Originais

flights %>% 
  select(air_time) 

Processando dados: Select

flights %>% 
  select(air_time) 

Processando dados: Dados Originais

flights

Processando dados: Slice

flights %>% 
  slice(1:2)

Processando dados: Slice

flights %>% 
  slice(1:2)

Processando dados: Dados Originais

flights

Processando dados: Filter

flights %>% 
  filter(origin=="JFK")

Processando dados: Filter

flights %>% 
  filter(origin=="JFK")

Processando dados: Filter

  • Para filtrar podemos usar várias condições:
    • ==
    • >, <
    • <=, >=
    • &
    • |
    • %in%
  • eg. filter(dep_delay>=0)
  • filter(carrier %in% c("UA","DL","AA"))
  • filter((origin=="JFK" | origin=="EWR") & carrier=="UA")

Processando dados: Filter

flights %>% 
  filter((origin=="JFK" | origin=="EWR") & carrier=="UA")

Processando dados: Filter

flights %>% 
  filter(origin=="JFK" & air_time<=40)

Processando dados: Dados Originais

flights

Processando dados: Rename

flights %>% 
  rename("airline"="carrier")

Processando dados: Rename

flights %>% 
  rename("airline"="carrier")

Processando dados - Uma Lista de Ações

Segundo, ações para calcular a medida / estatística que precisamos

Processing Data: Dados Originais

flights

Processando dados: Mutate

flights %>% 
  mutate(air_time=round(air_time/60,3))

Processando dados: Mutate

flights %>% 
  mutate(air_time=round(air_time/60,3))

Processando dados: Dados Originais

flights

Processando dados: Summarize

flights %>% 
  summarize(avg_distance=mean(distance,na.rm=TRUE))

Processando dados: Summarize

flights %>% 
  summarize(avg_distance=mean(distance,na.rm=TRUE))

Processando dados: Dados Originais

flights

Processando dados: Count

flights %>% 
  count()

Processando dados: Dados Originais

flights

Processando dados: Group_by

flights %>% 
  group_by(carrier) %>%
  summarize(avg_distance=mean(distance,na.rm=TRUE))

Processando dados: Group_by

flights %>% 
  group_by(carrier) %>%
  summarize(avg_distance=mean(distance,na.rm=TRUE))

Processando dados - Uma Lista de Ações

Terceiro, ações que reestruturam nossos dados:

Processing Data: Dados Originais

flights

Processando dados: Arrange

flights %>% 
  arrange(air_time)

Processando dados: Arrange

flights %>% 
  arrange(air_time)

Processando dados: Arrange

flights %>% 
  arrange(-air_time)

Processando dados: Arrange

flights %>% 
  arrange(-air_time)

Processando dados: Dados Originais

flights

Processando dados: Spread

flights %>% 
  spread(key="origin",value="dep_delay")

Processando dados: Spread

flights %>% 
  spread(key="origin",value="dep_delay")

Processando dados: Dados Originais

flights

Processando dados: Gather

flights %>% 
  gather(key="measure",value="value",-c(carrier,origin))

Processando dados: Gather

flights %>% 
  gather(key="measure",value="value",-c(carrier,origin))

Estratégias com Dados

Cada analise precisa uma sequência diferente de ações, mas uma estratégia geral é:

  1. Defina sua pergunta de pesquisa
    • Desenhe seu data frame desejado primeiro!
  2. Refine o escopo da análise
    • filter para as linhas relevantes
    • select e rename para tirar dados desnecessários
  3. 'Split' os dados em subgrupos para análise (se necessário)
    • group_by subgrupos
  4. 'Apply' um cálculo ou resumo estatístico para cada subgrupo
    • summarize ou mutate
  5. 'Combine' para a sua unidade de análise desejada
    • spread/gather o data frame para que cada linha é uma unidade
    • arrange o data frame na ordem desejado

Estratégias com Dados

  1. Defina sua pergunta de pesquisa
    • Qual é o atraso médio para cada mês para cada companhia aérea que sai do JFK?
  2. Refine o escopo da análise
    • filter só para JFK
    • select as variáveis de companhia aérea, mês e atraso
  3. 'Split' os dados em subgrupos para análise
    • group_by companhia aérea e mês
  4. 'Apply' um cálculo ou resumo estatístico para cada subgrupo
    • summarize para calcular o atraso médio
  5. 'Combine' para a sua unidade de análise desejada
    • spread o data frame para que cada companhia aérea é uma linha e cada mês é uma coluna

Estratégias com Dados

2 - Refine o escopo da análise
- filter só para JFK

flights_analysis <- flights %>% filter(origin=="JFK")

Estratégias com Dados

2 - Refine o escopo da análise
- select as variáveis de companhia aérea, mês e atraso

flights_analysis <- flights_analysis %>% 
  select(carrier,month,dep_delay)

Estratégias com Dados

3 - 'Split' os dados em subgrupos para análise
- group_by companhia aérea e mês

flights_analysis <- flights_analysis %>%
  group_by(carrier,month)

Estratégias com Dados

4 - 'Apply' um cálculo ou resumo estatístico para cada subgrupo
- summarize para calcular o atraso médio

flights_analysis <- flights_analysis %>%
  summarize(avg_delay=mean(dep_delay,na.rm=TRUE))

Estratégias com Dados

5 - 'Combine' para a sua unidade de análise desejada
- spread o data frame para que cada companhia aérea é uma linha e cada mês é uma coluna

flights_analysis <- flights_analysis %>% 
  spread(key="month",value="avg_delay")

Estratégias com Dados

Tudo juntos:

flights_analysis <- flights %>% filter(origin=="JFK") %>%
  select(carrier,month,dep_delay) %>%
  group_by(carrier,month) %>%
  summarize(avg_delay=mean(dep_delay,na.rm=TRUE)) %>%
  spread(key="month",value="avg_delay")

Estratégias com Dados

  1. Qual é a média de distâncias de voos saindo de LaGuardia (LGA)?

  2. Qual é a velocidade média dos voos de cada aeroporto de origem?

  3. Qual é o destino do voo mais rápido operado pela American Airlines (AA)?

  4. Qual é o desvio padrão dos atrasos de partida em cada mês?

  5. Qual operadora opera a maioria dos voos após as 22h em maio?

Estratégias com Dados

1 - Qual é a média de distâncias de voos saindo de LaGuardia (LGA)?

flights %>%
  filter(origin=="LGA") %>%
  summarize(avg_distance=mean(distance,na.rm=TRUE))

Estratégias com Dados

2 - Qual é a velocidade média dos voos de cada aeroporto de origem?

flights %>%
  group_by(origin) %>%
  mutate(speed=distance/air_time) %>%
  summarize(avg_speed=mean(speed,na.rm=TRUE))

Estratégias com Dados

3 - Qual é o destino do voo mais rápido operado pela American Airlines (AA)?

flights %>%
  filter(carrier=="AA") %>%
  mutate(speed=distance/air_time) %>%
  arrange(-speed) %>%
  slice(1) %>%
  select(dest)

Estratégias com Dados

4 - Qual é o desvio padrão dos atrasos de partida em cada mês?

flights %>%
  group_by(month) %>%
  summarize(sd_delays=sd(dep_delay,na.rm=TRUE))

Estratégias com Dados

5 - Qual operadora opera a maioria dos voos após as 22h em maio?

flights %>%
  filter(month==5 & hour>=10) %>%
  group_by(carrier) %>%
  count() %>%
  ungroup() %>%
  arrange(-n) %>%
  slice(1) %>%
  select(carrier)

Resultados In-Line

Queremos encontrar a velocidade média dos voos da United (UA).

avg_speed <- flights %>% filter(carrier=="UA") %>% 
  mutate(speed=distance/(air_time/60)) %>% 
  summarize(avg_speed=mean(speed,na.rm=TRUE)) %>%
  round(1)

A velocidade média dos vôos da United é `r avg_speed` milhas por hora.

A velocidade média dos vôos da United é 420.9 milhas por hora.