Exercices#

options(repr.matrix.max.cols=8, repr.matrix.max.rows=5)
library(dplyr, warn.conflicts = F)
path<-"https://raw.githubusercontent.com/nmeraihi/data/master/"

Question 1#

a)#

Importer les données qc_hommes_2.csv à partir du répertoire data github dans un data frame df

# ...
head(df)
                                              
1 function (x, df1, df2, ncp, log = FALSE)    
2 {                                           
3     if (missing(ncp))                       
4         .Call(C_df, x, df1, df2, log)       
5     else .Call(C_dnf, x, df1, df2, ncp, log)
6 }                                           
tail(df)
                                              
1 function (x, df1, df2, ncp, log = FALSE)    
2 {                                           
3     if (missing(ncp))                       
4         .Call(C_df, x, df1, df2, log)       
5     else .Call(C_dnf, x, df1, df2, ncp, log)
6 }                                           

b)#

Dans la colonne age, garder seulement la partite numérique. Vous devriez alors obtenir age={0,1,2 …}

# ...
head(df)
                                              
1 function (x, df1, df2, ncp, log = FALSE)    
2 {                                           
3     if (missing(ncp))                       
4         .Call(C_df, x, df1, df2, log)       
5     else .Call(C_dnf, x, df1, df2, ncp, log)
6 }                                           

c)#

À ce df, ajouter une nouvelle colonne dx (nombre de décès entre l’âge x et x+n). Donc dx est le nombre de décès qui surviennent dans chaque intervalle d’âge au sein d’une cohorte initiale de 100 000 naissances vivantes à l’âge 0.

\[d_x=l_x -l_{x+1}\]
# ...
head(df)
                                              
1 function (x, df1, df2, ncp, log = FALSE)    
2 {                                           
3     if (missing(ncp))                       
4         .Call(C_df, x, df1, df2, log)       
5     else .Call(C_dnf, x, df1, df2, ncp, log)
6 }                                           

d)#

Calculer qx (quotient de mortalité entre l’âge x et x+n). Donc qx est probabilité qu’un individu d’âge x décède avant d’atteindre l’âge x+n.

\[q_x=\frac{d_x}{l_x}\]
# ...
head(df)
                                              
1 function (x, df1, df2, ncp, log = FALSE)    
2 {                                           
3     if (missing(ncp))                       
4         .Call(C_df, x, df1, df2, log)       
5     else .Call(C_dnf, x, df1, df2, ncp, log)
6 }                                           

e)#

Maintenant que vous avez toutes les données, on peut calculer la probabilité qu’un individu d’âge x survive jusqu’à l’âge x+n.

\[tP_x=\frac{l_{x+t}}{l_x}\]

Calculer la probabilité qu’un individu de 22 ans survive les trois prochaines années

# ...
library(formattable)
Error in library(formattable): there is no package called ‘formattable’
Traceback:

1. library(formattable)
percent(p)
99.82%

Question 2#

# ...

Avec les données suivantes;

df1
IdAge
1 14
2 12
3 15
4 10
df2
IdSexCode
1Fa
2Mb
3Mc
4Fd

Créer un data frame M qui fait une jointure de df1 et df2

# ...
M
IdAgeSexCode
1 14F a
2 12M b
3 15M c
4 10F d

Question 3#

Selon un journaliste de la CNBC, le prix de l’action de Apple (AAPL) est très corrélé avec le prix de l’action de Boeing Co (BA).

Calculer la corrélation des prix Adj Close mensuels de ces deux compagnies sur la période allant du 2016-11-01 au 2017-10-01.

Indice: créer deux vecteurs avec les valeurs des prix. Vous pouvez importer les données à partir de finance yahoo dans la section Historical Data avec les dates et périodes indiquées ci-haut.

# ...
cor(a)
AppleBoeing
Apple1.0000000.872264
Boeing0.8722641.000000

Question 4#

Créer un data frame avec les données HackerRank-Developer-Survey. Dans ces données, vous trouvez une série de réponses que les développeurs de HackerRank ont répondues suite à un sondage ayant pour but de comprendre les l’intérêts des femmes envers la programmation informatique.

# ...
head(values)
RespondentIDStartDateEndDateCountryNumeric2q34PositiveExpq34IdealLengHackerRankTestq0035_otherq36Level4
6464453728 10/19/17 11:5110/20/17 12:05South Korea NA #NULL! Queue
6478031510 10/26/17 6:18 10/26/17 7:49 Ukraine NA #NULL! Queue
6464392829 10/19/17 10:4410/19/17 10:56Malaysia NA #NULL! Queue
6488385057 10/31/17 11:4610/31/17 11:59 NA #NULL! Hashmap
6463843138 10/19/17 3:02 10/19/17 3:18 United States NA #NULL! Queue

a)#

En utilisant le package dplyr, faites un petit tableau qui donne la proportion des hommes et des femmes dans ce dataset.

Utilisez la variable q3Gender

# ...
# ...
values_2
q3Gendern
Female 16.55688
Male 83.44312

b)#

En utilisant le package dplyr, faites un tableau qui donne la proportion des hommes et des femmes en les séparant par le fait qu’ils soient étudiants ou non.

Utilisez les variables q3Gender, is_student et q8Student

# ...
# ...
q3Genderis_studentn
Female No 20.82685
Female Yes 13.55364
Male No 79.17315
Male Yes 86.44636

c)#

Dresser un tableau qui donne le nombre de répondants par pays (utilisez la variable CountryNumeric2)

# ...
CountryNumeric2n
3991
Afghanistan 3
Albania 8
American Samoa1
Andorra 1

d)#

Faites un tableau qui donne le nombre de répondants en les classant par le diplôme obtenu.

Utilisez la variable q4Education

# ...
q4EducationTotal
College graduate 12010
Post graduate degree (Masters, PhD) 6030
Some college 2499
#NULL! 305
Vocational training (like bootcamp)148

e)#

Faites un tableau qui donne le nombre de développeurs par catégorie d’âge.

Utilisez la variable q1AgeBeginCoding

# ...
q1AgeBeginCodingTotal
16 - 20 years old14293
11 - 15 years old 5264
21 - 25 years old 3626
#NULL! 30
50+ years or older 8