chargement libraire
library(nycflights13)
library(dplyr)
##
## Attachement du package : 'dplyr'
## Les objets suivants sont masqués depuis 'package:stats':
##
## filter, lag
## Les objets suivants sont masqués depuis 'package:base':
##
## intersect, setdiff, setequal, union
#data(flights)
#data(airports)
#data(airlines)
Exercice page 15
Renommer ces dernières colonnes (variables) en longitude et
latitude.
lat_lon%>%rename('latitude'='lat','longitude' = 'lon')
## # A tibble: 1,458 × 2
## latitude longitude
## <dbl> <dbl>
## 1 41.1 -80.6
## 2 32.5 -85.7
## 3 42.0 -88.1
## 4 41.4 -74.4
## 5 31.1 -81.4
## 6 36.4 -82.2
## 7 41.5 -84.5
## 8 42.9 -76.8
## 9 39.8 -76.6
## 10 48.1 -123.
## # ℹ 1,448 more rows
Selectionner les colonnes (variables) entre year et day de la table
flights.
flights%>%select('year':'day')
## # A tibble: 336,776 × 3
## year month day
## <int> <int> <int>
## 1 2013 1 1
## 2 2013 1 1
## 3 2013 1 1
## 4 2013 1 1
## 5 2013 1 1
## 6 2013 1 1
## 7 2013 1 1
## 8 2013 1 1
## 9 2013 1 1
## 10 2013 1 1
## # ℹ 336,766 more rows
Sélectionner les noms de colonnes (variables) commençant par
dep_.
flights%>%select(., starts_with('dep_'))
## # A tibble: 336,776 × 2
## dep_time dep_delay
## <int> <dbl>
## 1 517 2
## 2 533 4
## 3 542 2
## 4 544 -1
## 5 554 -6
## 6 554 -4
## 7 555 -5
## 8 557 -3
## 9 557 -3
## 10 558 -2
## # ℹ 336,766 more rows
Sélectionner et Renommer uniquement les colonnes dep_delay par
“retard départ”, arr_delay par “retard arrivée”
retards<-flights%>%select('dep_delay','arr_delay')%>%rename('retard départ' = 'dep_delay', 'retard arrivée' = 'arr_delay')
retards
## # A tibble: 336,776 × 2
## `retard départ` `retard arrivée`
## <dbl> <dbl>
## 1 2 11
## 2 4 20
## 3 2 33
## 4 -1 -18
## 5 -6 -25
## 6 -4 12
## 7 -5 19
## 8 -3 -14
## 9 -3 -8
## 10 -2 8
## # ℹ 336,766 more rows
Exercice page 22
Trier la table flights selon le retard au départ dep_delay croissant
et selon le mois month.
flights%>%arrange(dep_delay, month)
## # A tibble: 336,776 × 19
## year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
## <int> <int> <int> <int> <int> <dbl> <int> <int>
## 1 2013 12 7 2040 2123 -43 40 2352
## 2 2013 2 3 2022 2055 -33 2240 2338
## 3 2013 11 10 1408 1440 -32 1549 1559
## 4 2013 1 11 1900 1930 -30 2233 2243
## 5 2013 1 29 1703 1730 -27 1947 1957
## 6 2013 8 9 729 755 -26 1002 955
## 7 2013 3 30 2030 2055 -25 2213 2250
## 8 2013 10 23 1907 1932 -25 2143 2143
## 9 2013 3 2 1431 1455 -24 1601 1631
## 10 2013 5 5 934 958 -24 1225 1309
## # ℹ 336,766 more rows
## # ℹ 11 more variables: 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>
Sélectionner les trois vols ayant eu le moins de retard :
flights%>%arrange(dep_delay, month)%>%slice_head(n=3)
## # A tibble: 3 × 19
## year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
## <int> <int> <int> <int> <int> <dbl> <int> <int>
## 1 2013 12 7 2040 2123 -43 40 2352
## 2 2013 2 3 2022 2055 -33 2240 2338
## 3 2013 11 10 1408 1440 -32 1549 1559
## # ℹ 11 more variables: 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>
Exercice page 31
Dans la table flights, convertir la durée air_time (exprimée en
minutes) en heures dans une nouvelle variable nommée duree_h.
flights <- flights%>%mutate(duree_h = air_time / 60)
flights
## # A tibble: 336,776 × 20
## year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
## <int> <int> <int> <int> <int> <dbl> <int> <int>
## 1 2013 1 1 517 515 2 830 819
## 2 2013 1 1 533 529 4 850 830
## 3 2013 1 1 542 540 2 923 850
## 4 2013 1 1 544 545 -1 1004 1022
## 5 2013 1 1 554 600 -6 812 837
## 6 2013 1 1 554 558 -4 740 728
## 7 2013 1 1 555 600 -5 913 854
## 8 2013 1 1 557 600 -3 709 723
## 9 2013 1 1 557 600 -3 838 846
## 10 2013 1 1 558 600 -2 753 745
## # ℹ 336,766 more rows
## # ℹ 12 more variables: 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>, duree_h <dbl>
De même convertir la distance distance () en kilomètres dans une
nouvelle variable nommée distance_km
flights<-flights%>%mutate(distance_km=distance*1.609)
flights%>%select(distance_km)
## # A tibble: 336,776 × 1
## distance_km
## <dbl>
## 1 2253.
## 2 2278.
## 3 1752.
## 4 2536.
## 5 1226.
## 6 1157.
## 7 1714.
## 8 368.
## 9 1519.
## 10 1179.
## # ℹ 336,766 more rows
Créer une nouvelle colonne pour calculer la vitesse en km/h nommée
vitesse et effectuez un arrangement des valeurs de cette vitesse par
ordre decroissant.
flights<-flights%>%mutate(vitesse = distance_km / duree_h)%>%arrange(desc(vitesse))
flights
## # A tibble: 336,776 × 22
## year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
## <int> <int> <int> <int> <int> <dbl> <int> <int>
## 1 2013 5 25 1709 1700 9 1923 1937
## 2 2013 7 2 1558 1513 45 1745 1719
## 3 2013 5 13 2040 2025 15 2225 2226
## 4 2013 3 23 1914 1910 4 2045 2043
## 5 2013 1 12 1559 1600 -1 1849 1917
## 6 2013 11 17 650 655 -5 1059 1150
## 7 2013 2 21 2355 2358 -3 412 438
## 8 2013 11 17 759 800 -1 1212 1255
## 9 2013 11 16 2003 1925 38 17 36
## 10 2013 11 16 2349 2359 -10 402 440
## # ℹ 336,766 more rows
## # ℹ 14 more variables: 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>, duree_h <dbl>,
## # distance_km <dbl>, vitesse <dbl>
Sélectionner les vols du mois de janvier avec un retard au départ
(variable dep_delay) supérieur à 10 minutes et inférieur à 15 min de
deux manières différentes
# solution 1
vols_janvier1 <- flights%>%filter(month==1, dep_delay>10, dep_delay<15)
#solution 2
vols_janvier2 <- flights%>%
filter(month==1)%>%
filter(dep_delay>10)%>%
filter(dep_delay<15)
Sélectionner la colonne destination dest nommée LAX et les variables
retard au départ dep_delay et à l’arrivée arr_delay. Arranger en même
temps la variable retard au départ dep_delay par odre décroissant ou
dans un second temps.
flights%>%select('dest', 'dep_delay', 'arr_delay')%>%
filter(dest=='LAX')%>%
arrange(desc(dep_delay))
## # A tibble: 16,174 × 3
## dest dep_delay arr_delay
## <chr> <dbl> <dbl>
## 1 LAX 800 784
## 2 LAX 634 NA
## 3 LAX 434 408
## 4 LAX 413 420
## 5 LAX 392 404
## 6 LAX 392 362
## 7 LAX 364 373
## 8 LAX 362 316
## 9 LAX 345 319
## 10 LAX 343 313
## # ℹ 16,164 more rows
Exercice page 40
Calculer le retard au départ maximum et minimum pour chaque mois ou
pour chaque destination.
# Avec les mois
flights%>%group_by(month)%>%
summarise(max_delay = max(dep_delay, na.rm = T), min_delay = min(dep_delay, na.rm=T))
## # A tibble: 12 × 3
## month max_delay min_delay
## <int> <dbl> <dbl>
## 1 1 1301 -30
## 2 2 853 -33
## 3 3 911 -25
## 4 4 960 -21
## 5 5 878 -24
## 6 6 1137 -21
## 7 7 1005 -22
## 8 8 520 -26
## 9 9 1014 -24
## 10 10 702 -25
## 11 11 798 -32
## 12 12 896 -43
# Avec la destination
flights%>%group_by(dest)%>%
summarise(max_delay = max(dep_delay, na.rm = T), min_delay = min(dep_delay, na.rm=T))
## Warning: There were 2 warnings in `summarise()`.
## The first warning was:
## ℹ In argument: `max_delay = max(dep_delay, na.rm = T)`.
## ℹ In group 52: `dest = "LGA"`.
## Caused by warning in `max()`:
## ! aucun argument pour max ; -Inf est renvoyé
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 1 remaining warning.
## # A tibble: 105 × 3
## dest max_delay min_delay
## <chr> <dbl> <dbl>
## 1 ABQ 142 -12
## 2 ACK 219 -13
## 3 ALB 323 -14
## 4 ANC 75 -2
## 5 ATL 898 -23
## 6 AUS 351 -14
## 7 AVL 222 -13
## 8 BDL 252 -15
## 9 BGR 248 -16
## 10 BHM 325 -13
## # ℹ 95 more rows
Compter le nombre de lignes par destination.
flights%>%
count(dest)
## # A tibble: 105 × 2
## dest n
## <chr> <int>
## 1 ABQ 254
## 2 ACK 265
## 3 ALB 439
## 4 ANC 8
## 5 ATL 17215
## 6 AUS 2439
## 7 AVL 275
## 8 BDL 443
## 9 BGR 375
## 10 BHM 297
## # ℹ 95 more rows
Compter le nombre de vols por aéroport de départ origin et aéroport
d’arrivée dest.
flights%>%count(origin, dest)
## # A tibble: 224 × 3
## origin dest n
## <chr> <chr> <int>
## 1 EWR ALB 439
## 2 EWR ANC 8
## 3 EWR ATL 5022
## 4 EWR AUS 968
## 5 EWR AVL 265
## 6 EWR BDL 443
## 7 EWR BNA 2336
## 8 EWR BOS 5327
## 9 EWR BQN 297
## 10 EWR BTV 931
## # ℹ 214 more rows
# par ordre décroissant
flights%>%count(origin, dest)%>%arrange(desc(n))
## # A tibble: 224 × 3
## origin dest n
## <chr> <chr> <int>
## 1 JFK LAX 11262
## 2 LGA ATL 10263
## 3 LGA ORD 8857
## 4 JFK SFO 8204
## 5 LGA CLT 6168
## 6 EWR ORD 6100
## 7 JFK BOS 5898
## 8 LGA MIA 5781
## 9 JFK MCO 5464
## 10 EWR BOS 5327
## # ℹ 214 more rows
Exercice page 47
Recoder les modalités BOS par Boston, LAX par Los Angeles et ANC par
Anchorage de la base de données flights
flights%>%mutate(dest = case_when(
dest=="BOS"~"BOSTON",
dest=="LAX"~"Los Angeles",
dest=="ANC"~" Anchorage",
TRUE~dest
))
## # A tibble: 336,776 × 22
## year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time
## <int> <int> <int> <int> <int> <dbl> <int> <int>
## 1 2013 5 25 1709 1700 9 1923 1937
## 2 2013 7 2 1558 1513 45 1745 1719
## 3 2013 5 13 2040 2025 15 2225 2226
## 4 2013 3 23 1914 1910 4 2045 2043
## 5 2013 1 12 1559 1600 -1 1849 1917
## 6 2013 11 17 650 655 -5 1059 1150
## 7 2013 2 21 2355 2358 -3 412 438
## 8 2013 11 17 759 800 -1 1212 1255
## 9 2013 11 16 2003 1925 38 17 36
## 10 2013 11 16 2349 2359 -10 402 440
## # ℹ 336,766 more rows
## # ℹ 14 more variables: 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>, duree_h <dbl>,
## # distance_km <dbl>, vitesse <dbl>
Exercice page 55
Remplacer le NA (initial de la première colonne one) par la moyenne
des autres valeurs de cette colonne
Figure <- Figure%>%mutate(One = ifelse(is.na(One), mean(One, na.rm=T),One))
Retourner la Data avec les NA supprimées
Figure
## One Two
## 1 0 2
## 2 1 3
## 3 2 0
## 4 1 1