0. Charger le package prenoms

library(prenoms)

1. Invoquer le jeu de données prenoms de ce package

data(prenoms, package = "prenoms")

2. Examiner la structure de prenoms avec glimpse

glimpse(prenoms)
## Observations: 3,547,289
## Variables: 6
## $ year <int> 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 190...
## $ sex  <chr> "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F...
## $ name <chr> "Adèle", "Adrienne", "Aimée", "Alice", "Alphonsine", "Amé...
## $ n    <int> 5, 9, 7, 24, 5, 8, 5, 6, 21, 12, 21, 6, 5, 5, 17, 3, 5, 1...
## $ dpt  <chr> "01", "01", "01", "01", "01", "01", "01", "01", "01", "01...
## $ prop <dbl> 0.0015777848, 0.0028400126, 0.0022088987, 0.0075733670, 0...

3. Filtrer les prénoms de filles donnés en 2011 à l’échelle départementale et trier par ordre croissant

prenoms %>% filter(sex == "F", year == 2011) %>% arrange(n)
## # A tibble: 27,517 x 6
##     year   sex      name     n   dpt        prop
##    <int> <chr>     <chr> <int> <chr>       <dbl>
##  1  2011     F      Alia     1    2A 0.001190476
##  2  2011     F  Amandine     1    2A 0.001190476
##  3  2011     F     Amina     1    2A 0.001190476
##  4  2011     F    Andrea     1    2A 0.001190476
##  5  2011     F  Anghjula     1    2A 0.001190476
##  6  2011     F   Antonia     1    2A 0.001190476
##  7  2011     F      Asma     1    2A 0.001190476
##  8  2011     F Cassandra     1    2A 0.001190476
##  9  2011     F Cassandre     1    2A 0.001190476
## 10  2011     F Charlotte     1    2A 0.001190476
## # ... with 27,507 more rows

4. Combien de fois votre prénom a été donné dans votre département de naissance votre année de naissance ?

prenoms %>% filter(year == 1985, name == "Diane", dpt == "93")
## # A tibble: 1 x 6
##    year   sex  name     n   dpt         prop
##   <int> <chr> <chr> <int> <chr>        <dbl>
## 1  1985     F Diane    14    93 0.0007948674

5. Quel est le prénom de fille le plus populaire en 1950 à Paris ?

prenoms %>% filter(sex == "F", year == 1950, dpt == "75") %>% arrange(desc(n)) %>% head(1)
## # A tibble: 1 x 6
##    year   sex    name     n   dpt       prop
##   <int> <chr>   <chr> <int> <chr>      <dbl>
## 1  1950     F Martine  1115    75 0.03699403
# un poil plus élégant 
prenoms %>% filter(sex == "F", year == 1950, dpt == "75") %>% slice(which.max(n))
## # A tibble: 1 x 6
##    year   sex    name     n   dpt       prop
##   <int> <chr>   <chr> <int> <chr>      <dbl>
## 1  1950     F Martine  1115    75 0.03699403

6. Les 10 prénoms les plus donnés à l’échelle départementale à travers les années ?

prenoms %>% top_n(10, n)
## # A tibble: 10 x 6
##     year   sex  name     n   dpt      prop
##    <int> <chr> <chr> <int> <chr>     <dbl>
##  1  1953     F Marie  4261    97 0.1424798
##  2  1956     F Marie  4183    97 0.1300684
##  3  1957     F Marie  4637    97 0.1415662
##  4  1958     F Marie  4646    97 0.1405621
##  5  1960     F Marie  4203    97 0.1220773
##  6  1961     F Marie  4275    97 0.1248686
##  7  1962     F Marie  4455    97 0.1242712
##  8  1964     F Marie  4291    97 0.1185949
##  9  1965     F Marie  4345    97 0.1182925
## 10  1966     F Marie  4129    97 0.1140860

7. Le prénom de garçon et de fille le plus donné par année et à l’echelle du département ?

prenoms %>% group_by(sex, year, dpt) %>% 
  top_n(1,n)
## # A tibble: 23,091 x 6
## # Groups:   sex, year, dpt [22,504]
##     year   sex   name     n   dpt       prop
##    <int> <chr>  <chr> <int> <chr>      <dbl>
##  1  1900     F  Marie   639    01 0.20164090
##  2  1900     M   Jean   144    01 0.04544020
##  3  1900     F  Marie   319    02 0.06330621
##  4  1900     M  André   138    02 0.02738639
##  5  1900     F  Marie   645    03 0.16572456
##  6  1900     M   Jean   230    03 0.05909558
##  7  1900     F  Marie   146    04 0.14792300
##  8  1900     M  Louis    40    04 0.04052685
##  9  1900     F  Marie   155    05 0.15720081
## 10  1900     M Joseph    50    05 0.05070994
## # ... with 23,081 more rows
# ou

prenoms %>% group_by(sex, year, dpt) %>% 
  filter(n == max(n))
## # A tibble: 23,091 x 6
## # Groups:   sex, year, dpt [22,504]
##     year   sex   name     n   dpt       prop
##    <int> <chr>  <chr> <int> <chr>      <dbl>
##  1  1900     F  Marie   639    01 0.20164090
##  2  1900     M   Jean   144    01 0.04544020
##  3  1900     F  Marie   319    02 0.06330621
##  4  1900     M  André   138    02 0.02738639
##  5  1900     F  Marie   645    03 0.16572456
##  6  1900     M   Jean   230    03 0.05909558
##  7  1900     F  Marie   146    04 0.14792300
##  8  1900     M  Louis    40    04 0.04052685
##  9  1900     F  Marie   155    05 0.15720081
## 10  1900     M Joseph    50    05 0.05070994
## # ... with 23,081 more rows

8. Le prénom de garçon et de fille le plus donné par année à l’échelle nationale ?

prenoms %>% group_by(sex, year, name) %>% 
  summarise(n = sum(n)) %>% 
  filter(n == max(n))
## # A tibble: 232 x 4
## # Groups:   sex, year [232]
##      sex  year  name     n
##    <chr> <int> <chr> <int>
##  1     F  1900 Marie 48722
##  2     F  1901 Marie 52164
##  3     F  1902 Marie 51867
##  4     F  1903 Marie 50442
##  5     F  1904 Marie 50149
##  6     F  1905 Marie 48995
##  7     F  1906 Marie 48462
##  8     F  1907 Marie 46064
##  9     F  1908 Marie 47476
## 10     F  1909 Marie 46415
## # ... with 222 more rows
# ou 

prenoms %>% group_by(sex, year, name) %>% 
  summarise(n = sum(n)) %>% 
  top_n(1,n)
## # A tibble: 232 x 4
## # Groups:   sex, year [232]
##      sex  year  name     n
##    <chr> <int> <chr> <int>
##  1     F  1900 Marie 48722
##  2     F  1901 Marie 52164
##  3     F  1902 Marie 51867
##  4     F  1903 Marie 50442
##  5     F  1904 Marie 50149
##  6     F  1905 Marie 48995
##  7     F  1906 Marie 48462
##  8     F  1907 Marie 46064
##  9     F  1908 Marie 47476
## 10     F  1909 Marie 46415
## # ... with 222 more rows

9. Suggérer 2 prénoms féminins et 2 prénoms masculins éligibles, ainsi que 2 prénoms féminins et 2 prénoms masculins non éligibles. Le tableau contient les variables name | sex | eligible. Fusionner les 2 jeux de données. Stocker dans prenoms2

a_merger <- tribble(
  ~name, ~sex, ~eligible,
  "Gwendoline", "F", "candidat",
  "Louise", "F", "candidat",
  "Louis", "M", "candidat",
  "Enguerrand", "M", "candidat",
  "Diane", "F", "exclus",
  "Gertrude", "F", "exclus",
  "Emmanuel", "M", "exclus",
  "Donald", "M", "exclus" 
)

prenoms2 <- prenoms %>% left_join(a_merger)
## Joining, by = c("sex", "name")

10. Filter les prénoms féminins candidats retenus, calculer la somme par prénom et par année, trier par année. En faire un graphe ggplot2 ?

candidats <- prenoms2 %>%
  filter(eligible == "candidat" & sex == "F") %>% 
  group_by(name, year, sex) %>%
  summarise( n = sum(n) ) %>%
  arrange( year )

library(ggplot2)
ggplot( candidats, aes(x = year, y = n, color = name) ) + 
  geom_line() + 
  scale_x_continuous( breaks = seq(1900, 2020, by = 10) )

11. Construire le tableau qui contient pour chaque année le nombre de filles et de garçons. Les variables sont year | F | M

prenoms %>% group_by(sex,year) %>%
  summarise(n = sum(n)) %>%
  spread(sex, n)
## # A tibble: 116 x 3
##     year      F      M
##  * <int>  <int>  <int>
##  1  1900 223263 167203
##  2  1901 243159 185452
##  3  1902 246931 193772
##  4  1903 246802 196764
##  5  1904 250274 203427
##  6  1905 252793 211170
##  7  1906 257972 217782
##  8  1907 255570 219727
##  9  1908 266340 232259
## 10  1909 264860 234971
## # ... with 106 more rows

12. Construire le tableau qui compte le nombre de prénoms différents par sexe et année. En faire un graphe ?

prenoms %>% 
  group_by(sex, year) %>% 
  summarise( n = length(unique(name)) ) %>% 
  ggplot( aes(year, n, colour = sex ) ) + geom_line()