#Исходная таблица
head(flights)
## # A tibble: 6 x 19
##    year month   day dep_time sched_dep_time dep_delay arr_time
##   <int> <int> <int>    <int>          <int>     <dbl>    <int>
## 1  2013     1     1      517            515         2      830
## 2  2013     1     1      533            529         4      850
## 3  2013     1     1      542            540         2      923
## 4  2013     1     1      544            545        -1     1004
## 5  2013     1     1      554            600        -6      812
## 6  2013     1     1      554            558        -4      740
## # ... with 12 more variables: sched_arr_time <int>, arr_delay <dbl>,
## #   carrier <chr>, flight <int>, tailnum <chr>, origin <chr>, dest <chr>,
## #   air_time <dbl>, distance <dbl>, hour <dbl>, minute <dbl>,
## #   time_hour <dttm>

Упражнение 1. Доля задержанных рейсов

На основе набора данных flights рассчитайте долю задержанных рейсов по всей таблице.

Подсказка: R рассматривает логические значения TRUE и FALSE как 1 и 0. Поэтому выполнив команду: mean(x > 0) мы можем найти долю положительных значений в векторе x.

flights <- mutate(flights, delay = ifelse(dep_delay > 0, TRUE, FALSE)) 
#mean(flights$delay > 0)
a <- nrow(filter(flights, delay == TRUE))/nrow(flights) 
a
## [1] 0.3813573

Примерно 38% рейсов было задержано.


Упражнение 2. Надежность авиакомпаний

Составьте рейтинг авиакомпаний по вероятности отмены рейса. Самые надежные авиакомпании должны быть первыми в списке.

flights %>% 
  group_by(carrier) %>% 
  summarise(cancellation = mean(is.na(dep_time))) %>%
  arrange(cancellation)
## # A tibble: 16 x 2
##    carrier cancellation
##    <chr>          <dbl>
##  1 HA           0      
##  2 AS           0.00280
##  3 F9           0.00438
##  4 VX           0.00601
##  5 DL           0.00725
##  6 B6           0.00853
##  7 UA           0.0117 
##  8 WN           0.0156 
##  9 AA           0.0194 
## 10 FL           0.0224 
## 11 US           0.0323 
## 12 MQ           0.0467 
## 13 EV           0.0520 
## 14 9E           0.0566 
## 15 YV           0.0932 
## 16 OO           0.0938

Самый надежный перевозчик - HA. Компанией были совершены все запланированные полеты.


Упражнение 3. Тяжелые месяцы

Определите, какой месяц оказался самым тяжелым для каждой авиакомпании (по доле рейсов, задержанных более чем на 15 минут).

flights %>%
  mutate(delay_15 = ifelse(dep_delay > 15, TRUE, FALSE)) %>% 
  filter(!is.na(delay_15)) %>%
  group_by(carrier, month) %>% 
  summarise(b = mean(delay_15>0)) %>%
  arrange(desc(b)) %>%
  top_n(1, wt = b) 
## # A tibble: 16 x 3
## # Groups:   carrier [16]
##    carrier month     b
##    <chr>   <int> <dbl>
##  1 OO          1 1    
##  2 F9          7 0.552
##  3 YV          3 0.5  
##  4 FL          6 0.428
##  5 WN         12 0.414
##  6 9E          7 0.378
##  7 EV         12 0.368
##  8 B6          7 0.344
##  9 UA         12 0.328
## 10 AS         12 0.315
## 11 MQ          7 0.312
## 12 VX          7 0.305
## 13 DL          7 0.279
## 14 HA          2 0.214
## 15 AA          6 0.210
## 16 US          6 0.179

В представленной таблице можно наблюдать самые тяжелые месяцы для авиакомпаний (по доле рейсов, задержанных более чем на 15 минут).


Полезные ссылки: