1. Introduction
Cliquer
ici pour les diapos de cours
1.1 Quelques mots sur ce tuto
Ce document rassemble un certain nombre d’exercices, qui sont de deux types.
- Des exercices de type QCM.
- Des exercices de type code.
Dans ce deuxième type d’exercice, vous pourrez modifier du code dans une fenêtre (fond jaune pâle) qui est l’équivalent d’un éditeur (très simplifié) de code R. Pour exécuter les lignes de code, vous pouvez vous placer dessus et faire Ctrl+Enter. Le résultat s’affichera dans une fenêtre (fond rose pâle) en-dessous qui est l’équivalent d’une console R.
a=33
b=29
a=___
a
a=33
b=29
a=22
a
Le code que vous entrerez peut être évalué automatiquement lorsque vous appuyez sur Submit solution.
L’évaluation porte usuellement sur la dernière commande écrite dans l’éditeur (celle écrite tout en bas!), ainsi que (plus généralement) sur le fait que le code ne génère pas d’erreur lors de son exécution.
Par exemple, l’exercice ci-dessus est paramétré pour être évalué
comme correct quand la dernière commande (donc d’après le code
pré-renseigné l’objet a
) correspond à la valeur 22, et
incorrect autrement… Vous pouvez corriger (ou non) le code dans
l’éditeur pour tester le comportement de l’évaluation…
1.2 Usages de R
## Warning in attr(.knitEnv$meta, "knit_meta_id"): 'xfun::attr()' est obsolète.
## Utilisez plutôt ‘xfun::attr2()’.
## Voir help("Deprecated")
1.3 Usages de RStudio
## Warning in attr(.knitEnv$meta, "knit_meta_id"): 'xfun::attr()' est obsolète.
## Utilisez plutôt ‘xfun::attr2()’.
## Voir help("Deprecated")
1.4 Assignation
Testez les commandes suivantes.
Modifiez le code pour que obj_d
fasse également
partie de l’environnement et soit listé lors de l’appel de
ls()
.
obj_a <- "coin-coin"
obj_b <- "pouet-pouet"
obj_c = 25.7
#obj_d <- 33
ls()
obj_a <- "coin-coin"
obj_b <- "pouet-pouet"
obj_c = 25.7
obj_d <- 33
ls()
2. Objets de base
Cliquer
ici pour les diapos de cours
2.1 Création de vecteurs
Le code suivant crée quatre vecteurs. Examinez-le et répondez à la question suivante
vec1 <- 0:5
vec2 <- seq(0,5,length.out=5)
vec3 <- c("0","1","2","3","4","5")
vec4 <- seq(0,5,by=1)
## Warning in attr(.knitEnv$meta, "knit_meta_id"): 'xfun::attr()' est obsolète.
## Utilisez plutôt ‘xfun::attr2()’.
## Voir help("Deprecated")
2.2 Création d’une tibble
Complétez le code ci-dessous pour créer la tibble starks
qui résume quelques données sur des personnages de la série Game of
Thrones.
Précisez le nom de famille de Jon (à savoir “Snow”) et en complétez la variable “Age” (numérique) correspondant aux âges des enfants Stark (respectivement 15, 14, 11, 9, 7 et 3 ans).
starks <- tibble(FirstName=c("Robb","Jon","Sansa","Arya","Brandon","Rickon"),
LastName=c("Stark",_,"Stark","Stark","Stark","Stark"),
Age=c(_,_,_,_,_,_),
Direwolf=c("Grey Wind","Ghost","Lady","Nymeria","Summer","Shaggydog"))
starks <- tibble(FirstName=c("Robb","Jon","Sansa","Arya","Brandon","Rickon"),
LastName=c("Stark","Snow","Stark","Stark","Stark","Stark"),
Age=c(15,14,11,9,7,3),
Direwolf=c("Grey Wind","Ghost","Lady","Nymeria","Summer","Shaggydog"))
2.3 Indexation des vecteurs
vecvilles___
## Warning in attr(.knitEnv$meta, "knit_meta_id"): 'xfun::attr()' est obsolète.
## Utilisez plutôt ‘xfun::attr2()’.
## Voir help("Deprecated")
2.4 Indexation d’une liste
L’environnement contient une liste ma_liste
. En
utilisant le système d’indexation des objets de type liste, récupérez le
4ème élément de l’élément fruits dans l’objet ma_liste.
quatrieme_fruit <- ___
quatrieme_fruit
quatrieme_fruit <- ma_liste$fruits[4]
quatrieme_fruit
2.5 Indexation d’une tibble
L’environnement contient une tibble ma_tibble
. En
utilisant le système d’indexation des objets de type tibble, récupérez
les sixième et septième éléments de la variable cri
dans
cette tibble.
sixieme_et_septieme_cris <-___
sixieme_et_septieme_cris
sixieme_et_septieme_cris <- ma_tibble$cri[6:7]
sixieme_et_septieme_cris
3. Opérateurs, fonctions et packages
Cliquer
ici pour les diapos de cours
3.1 Opérateurs arithmétiques
Le script ci-dessous crée deux vecteurs, pommes
et
bananes
.
Complétez le script pour créer un nouveau vecteur
fruits
qui correspond à la somme (élément
par élément) des pommes et des bananes.
Ne réécrivez pas le vecteur fruits à la main! Il faut
simplement ici réaliser une opération arithmétique simple à l’aide des
vecteurs pommes
et bananes
…
bananes <- c(5, 2, 3, 1, 7 , 8,NA, 2)
pommes <- c(2, 1, 0, 2, NA, 3, 1, 5)
fruits <- _______________
bananes <- c(5, 2, 3, 1, 7 , 8,NA, 2)
pommes <- c(2, 1, 0, 2, NA, 3, 1, 5)
fruits <- pommes + bananes
3.2 Opérateurs logiques
## Warning in attr(.knitEnv$meta, "knit_meta_id"): 'xfun::attr()' est obsolète.
## Utilisez plutôt ‘xfun::attr2()’.
## Voir help("Deprecated")
Gardez à l’esprit que (prop1 & prop2) est vraie si les deux propositions sont vraies; en revanche (prop1 | prop2) est vraie si au moins l’une des deux propositions est vraie…
3.3 Usage d’une fonction
L’environnement contient un vecteur x
. Calculez la
moyenne, la variance, et le
quantile d’ordre 90% du vecteur x
.
Pensez au préalable à convertir la valeur 90% en une valeur comprise entre 0 et 1…
moyenne <- ___
moyenne
variance <- ___
variance
quantile90p <- ___
quantile90p
moyenne <- mean(x)
moyenne
variance <- var(x)
variance
quantile90p <- quantile(x,0.9)
quantile90p
3.4 Arguments d’une fonction
La fonction mean()
renvoie la moyenne d’un vecteur.
L’existence d’un élément manquant (NA) dans le vecteur cause le renvoi
de NA comme résultat.
Un des arguments de mean()
permet de
changer ce comportement pour renvoyer la moyenne du vecteur en
omettant les NA.
Trouvez le nom de cet argument en consultant l’aide de la
fonction et complétez la deuxième commande (ci-dessous) pour
calculer m2
.
Remarque: vous pouvez consulter le fichier d’aide associé à la fonction depuis la console, comme vous le feriez depuis RStudio…
vec <- c(3,2,8,NA,6,8,10,4,12,21,NA)
m1 <- mean(vec)
m2 <- mean(vec, _____)
vec <- c(3,2,8,NA,6,8,10,4,12,21,NA)
m1 <- mean(vec)
m2 <- mean(vec, na.rm=TRUE)
Avez-vous consulté l’aide de la fonction mean() (en tapant par exemple help(mean) ou ?mean) pour trouver le nom de l’argument qui nous intéresse ici?