Exercices

Les données peuvent être retrouvées dans le dossier Programmation avec R.

Question 1

a. Créez une variable à partir des valeurs suivantes (voir Créer un vecteur) :
2.1
3.2
1.9
5.3
4.5
6.5
4.3
0.7
1.1
4.6

Réponse
##créer variable
variable <- c(2.1, 3.2, 1.9, 5.3, 4.5, 6.5, 4.3, 0.7, 1.1, 4.6)


b. À partir de la variable que vous venez de créer, utilisez la fonction appropriée pour déterminer le nombre d’observations (voir Connaître les caractéristiques d’un vecteur).

Réponse
length(variable)
## [1] 10


c. Sélectionnez les observations 1, 5, 8 et stockez-les dans un nouvel objet (voir Sélectionner des valeurs).

Réponse
nouvel.objet <- variable[c(1, 5, 8)]


d. Créez une matrice de 2 rangées et de 5 colonnes. Insérez dans cette matrice les valeurs de la variable créée en a (voir Créer une matrice) en insérant les données de façon à remplir une colonne à la fois, de telle sorte que les deux premières observations se retrouvent dans la première colonne, les deux suivantes dans la deuxième colonne, et ainsi de suite ).

Réponse
la.matrice <- matrix(data = variable, nrow = 2, ncol = 5)
la.matrice
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  2.1  1.9  4.5  4.3  1.1
## [2,]  3.2  5.3  6.5  0.7  4.6


e. Calculez la somme de chaque colonne de la matrice avec la fonction la plus appropriée (voir Opérations et manipulation de matrices).

Réponse
colSums(la.matrice)
## [1]  5.3  7.2 11.0  5.0  5.7


Question 2

a. Importez le jeu de données contenu dans le fichier richesse.txt (voir Importer des fichiers de données).

Réponse
##importer en spécifiant le chemin complet
##si le fichier n'est pas dans le répertoire
##de travail
rich <- read.table("Guide_R_2/data/richesse.txt", header = TRUE)


b. Créez une nouvelle variable à partir du log naturel (à base \(e\)) de la variable Profondeur et ajoutez-la au jeu de données (voir Ajouter une variable).

Réponse
##on crée une variable de log de la Profondeur
rich$log.Profondeur <- log(rich$Profondeur)


c. Modifiez le nom de la variable Profondeur à la.profondeur directement dans le jeu de données (voir Accéder aux variables d’un jeu de données). Indice: vous aurez besoin de sélectionner le nom de la variable que vous voulez remplacer avec [ ].

Réponse
names(rich)
## [1] "Profondeur"     "Nombre.espece"  "Site"           "log.Profondeur"
names(rich)[1] <- "la.profondeur"
names(rich)
## [1] "la.profondeur"  "Nombre.espece"  "Site"           "log.Profondeur"


d. Créez une variable binaire à partir de la variable Nombre.espece en assignant la valeur pauvre lorsque la variable a des valeurs \(\leq 3\) et riche lorsque la variable prend des valeurs > 3 (voir Tests logiques).

Réponse
rich$Nombre.espece.bin <- ifelse(rich$Nombre.espece <= 3, "pauvre", "riche")
head(rich)
##   la.profondeur Nombre.espece  Site log.Profondeur Nombre.espece.bin
## 1      20.38067             4 foret       3.014587             riche
## 2      27.07474             0 foret       3.298601            pauvre
## 3      32.58788             4 foret       3.483941             riche
## 4      18.47868             1 foret       2.916618            pauvre
## 5      31.95783             3 foret       3.464417            pauvre
## 6      30.30124             1 foret       3.411189            pauvre


e. Créez un sous-jeu de données pour la partie correspondant aux sites de type champ et stockez-le dans un objet (voir Créer des sous-ensembles).

Réponse
##avec [ , ]
champ <- rich[rich$Site == "champ", ]
##ou avec subset
champ <- subset(rich, subset = rich$Site == "champ")
head(champ)
##    la.profondeur Nombre.espece  Site log.Profondeur Nombre.espece.bin
## 16      26.92344             2 champ       3.292997            pauvre
## 17      20.46983             1 champ       3.018952            pauvre
## 18      23.51757             1 champ       3.157748            pauvre
## 19      42.24314             3 champ       3.743442            pauvre
## 20      31.99812             3 champ       3.465677            pauvre
## 21      24.21516             3 champ       3.186979            pauvre


f. Exportez le sous-jeu de données créé en e dans un fichier (voir Exporter un jeu de données).

Réponse
##séparateur tabulation
write.table(champ, file = "Guide_R_2/data/champ.txt", sep = "\t",
            row.names = FALSE, col.names = TRUE)

##séparateur espace
write.table(champ, file = "Guide_R_2/data/champ.txt", sep = " ",
            row.names = FALSE, col.names = TRUE)

##séparateur point-virgule
write.table(champ, file = "Guide_R_2/data/champ.txt", sep = ";",
            row.names = FALSE, col.names = TRUE)