Dans cette leçon, nous allons examiner les structures de données dans R. Nous commencerons par étudier les vecteurs, qui sont la structure de données fondamentale dans R. Puis, nous apprendrons à combiner des vecteurs dans des data frames, qui sont la structure la plus utilisée pour organiser et analyser les données. Alors, commençons !
Voici les objectifs d’apprentissage. Vous pouvez faire pause et lire ces objectifs maintenant, mais nous y reviendrons à la fin.
Vous pouvez créer des vecteurs avec la fonction
c().
Vous pouvez combiner des vecteurs dans des data frames.
Vous comprenez la différence entre un tibble et un data frame.
Veuillez charger les packages nécessaires pour cette leçon avec le code ci-dessous : [Pour cette leçon, nous avons seulement besoin de tidyverse. Nous chargeons donc pacman puis chargeons tidyverse]
Les vecteurs sont les structures de données les plus fondamentales dans R. Ils sont une collection de valeurs qui partagent toutes la même classe (par exemple, toutes numériques ou toutes caractères).
Les vecteurs peuvent être créés en utilisant la fonction
c() :
On écrit :
## [1] 1 2 3
Nous pouvons assigner ce vecteur à un objet appelé mon_vec de cette manière :
Définissons maintenant un ensemble de trois vecteurs différents pour trois personnes théoriques :
Dans notre script, nous écrivons :
age <- c(18, 25, 46) # age est égal à dix-huit, vingt-cinq et quarante-six
sexe <- c('H', 'F', 'F') # sexe est égal à c, "H" pour homme, "F" pour femme, "F" pour femme
test_positif <- c(T, T, F) # test_positif est égal à c T, qui représente TRUE, T, F, qui représente FALSE
id <- 1:3 # et enfin, idOn peut également vérifier les classes de ces vecteurs :
## [1] "numeric"
## [1] "character"
## [1] "logical"
Maintenant, passons à la manipulation des vecteurs.
La plupart des fonctions et opérations que vous connaissez déjà peuvent être appliquées à des vecteurs.
Par exemple, considérons le vecteur age, nous pouvons multiplier
age par 2 :
## [1] 18 25 46
## [1] 36 50 92
Remarquez que chaque élément du vecteur a été multiplié par 2.
Ou, ci-dessous nous prenons la racine carrée de age
:
## [1] 18 25 46
## [1] 4.242641 5.000000 6.782330
Vous pouvez également additionner (numériquement) des vecteurs :
Par exemple, si nous voulons ajouter le vecteur age au vecteur id,
regardons d’abord à nouveau ce qu’est age :
## [1] 18 25 46
et id est :
## [1] 1 2 3
Nous pouvons simplement les additionner de cette manière :
## [1] 19 27 49
Notez que le premier élément de age est ajouté au
premier élément de id et le deuxième élément de
age est ajouté au deuxième élément de id, et
ainsi de suite.
Maintenant que nous maîtrisons la création de vecteurs, passons à l’objet le plus utilisé dans l’analyse de données : les data frames
Un data frame est une collection de vecteurs de même longueur. Nous
pouvons créer un data frame en utilisant la fonction
data.frame().
Essayons de le faire.
Rappelez-vous que nous avons précédemment créé trois objets vecteurs, (id, age, sexe et test_positif) pour trois individus :
Nous pouvons maintenant utiliser la fonction
data.frame() pour les combiner dans une seule data frame
:
## id age sexe test_positif
## 1 1 18 H TRUE
## 2 2 25 F TRUE
## 3 3 46 F FALSE
Au lieu de créer chaque vecteur séparément, vous pouvez créer votre
data frame en définissant chacun des vecteurs à l’intérieur de la
fonction data.frame().
## age sexe
## 1 18 M
## 2 25 F
## 3 46 F
La plupart du temps lorsque vous travaillez avec des données dans R,
vous les importerez à partir de contextes externes. Mais il est parfois
utile de créer des jeux de données dans R lui-même. C’est dans
de tels cas que la fonction data.frame() sera utile.
Pour extraire les vecteurs du data frame, utilisez la syntaxe
$, appelée le signe dollar. Exécutez les lignes de code
suivantes dans votre console pour observer cela.
donnees_epi$age
is.vector(donnees_epi$age) # vérifie que cette colonne est bien un vecteur
class(donnees_epi$age) # vérifie la classe du vecteurCombinez les vecteurs ci-dessous dans un data frame, avec les noms de colonnes suivants : “nom” pour le vecteur de caractères, “nb_enfants” pour le vecteur numérique et “est_marie” pour le vecteur logique.
Utilisez la fonction data.frame() pour définir dans R un
data frame qui ressemble au tableau suivant :
| salle | nb_fenetres |
|---|---|
| cuisine | 2 |
| chambre | 5 |
La version par défaut des données tabulaires dans R s’appelle un data
frame, mais il existe une autre représentation des données tabulaires
fournie par le package tidyverse. Elle s’appelle un
tibble, et c’est une version améliorée du data frame.
Vous pouvez convertir un data frame en tibble avec la fonction
as_tibble() :
## id age sexe test_positif
## 1 1 18 H TRUE
## 2 2 25 F TRUE
## 3 3 46 F FALSE
## # A tibble: 3 × 4
## id age sexe test_positif
## <int> <dbl> <chr> <lgl>
## 1 1 18 H TRUE
## 2 2 25 F TRUE
## 3 3 46 F FALSE
Remarquez que le tibble affiche les dimensions des données dans la première ligne :
# A tibble: 3 × 4
id age sexe test_positif
<int> <dbl> <chr> <lgl>
1 1 18 M VRAI
2 2 25 F VRAI
3 3 46 F FAUX
Et indique également les types de données en haut de chaque colonne :
# A tibble: 3 × 4
id age sexe test_positif
<int> <dbl> <chr> <lgl>
1 1 18 M VRAI
2 2 25 F VRAI
3 3 46 F FAUX
Ici, “int” signifie “entier” (“integer”), “dbl” signifie “double” (qui est un type numérique), “chr” signifie “caractère” et “lgl” signifie “logique”.
L’autre avantage des tibbles est qu’ils évitent d’inonder votre console lorsque vous imprimez un grand tableau.
Considérez, par exemple, ce que vous voyez dans votre console lorsque vous exécutez les lignes ci-dessous :
# imprime le data frame infert (un jeu de données R intégré)
infert # Impression très longue
as_tibble(infert) # impression plus gérablePour la plupart de vos besoins d’analyse de données, vous devriez préférer les tibbles aux data frames classiques.
read_csv() crée des tibblesLorsque vous importez des données avec la fonction
read_csv() de {readr}, vous obtenez un tibble :
ebola_tib <- read_csv("https://tinyurl.com/ebola-data-sample") # Nécessite internet pour fonctionner
class(ebola_tib)## [1] "spec_tbl_df" "tbl_df" "tbl" "data.frame"
Mais lorsque vous importez des données avec la fonction
read.csv() de base, vous obtenez un data.frame :
ebola_df <- read.csv("https://tinyurl.com/ebola-data-sample") # Nécessite internet pour fonctionner
class(ebola_df)## [1] "data.frame"
Essayez d’imprimer ebola_tib et ebola_df
dans votre console pour observer le comportement d’impression différent
des tibbles et des data frames.
C’est une des raisons pour lesquelles nous recommandons d’utiliser
read_csv() plutôt que read.csv().
Avec votre compréhension des classes et des structures de données, vous êtes désormais bien équipé pour effectuer des tâches de manipulation de données dans R. Dans les prochaines leçons, nous explorerons les puissantes capacités de transformation de données du package dplyr, qui amélioreront encore vos compétences en analyse de données.
Félicitations d’être arrivé jusque-là ! Vous avez beaucoup appris et vous pouvez être fiers de vous.
L’équipe suivante a contribué à cette leçon :
Certains éléments de cette leçon ont été adaptés des sources suivantes :
This work is licensed under the Creative Commons Attribution Share Alike license.