Accéder au contenu principal

Sous-ensembles de jeux de données dans R

Créer des sous-ensembles est une compétence essentielle pour tout professionnel des données. Apprenez et entraînez-vous dans ce tutoriel interactif express !
· 6 min lire

Explorez l'IA

Que vous compariez la réaction de différents segments démographiques à des campagnes marketing, que vous vous concentriez sur une période précise ou que vous extrayiez les informations de quelques produits de votre inventaire, créer des sous-ensembles de jeux de données vous permet d'obtenir des observations utiles. R est un excellent outil qui rend cette opération simple et intuitive. À la fin de ce tutoriel, vous saurez extraire précisément les informations dont vous avez besoin.

Créer un sous-ensemble ne modifie pas le contenu de vos données : vous sélectionnez simplement la partie la plus pertinente au regard de votre objectif. En général, il existe trois façons de sélectionner les lignes et les colonnes d'un jeu de données : par indice, par nom et par valeur.

Créer des sous-ensembles par indice (lignes et colonnes)

Une façon de sélectionner vos lignes et colonnes est d'utiliser les indices de votre jeu de données. C'est l'équivalent de formuler : « la première ligne », « toutes les lignes des 2e et 5e colonnes » ou « la première ligne des 2e à 5e colonnes ». Illustrons cela avec le jeu de données iris dans R. D'après sa documentation, « ce célèbre jeu de données (de Fisher ou d'Anderson) fournit, en centimètres, les mesures de longueur et de largeur du sépale et du pétale pour 50 fleurs de chacune des 3 espèces d'iris : Iris setosa, versicolor et virginica. »

Pour créer un sous-ensemble, utilisez des crochets après l'objet de votre jeu de données. Les lignes se spécifient en premier à l'intérieur des crochets, puis les colonnes en second, séparées par une virgule :

data[rows, columns]

Créer des sous-ensembles par nom (lignes et colonnes)

Dans R, les lignes et les colonnes disposent d'attributs de nom. Les noms de lignes sont rarement utilisés et, par défaut, correspondent à des indices : des entiers numérotés de 1 au nombre de lignes du jeu de données, comme vous l'avez vu précédemment. En appelant rownames() sur le jeu iris, vous verrez qu'ils sont simplement indexés de 1 à 150 :

 > rownames(iris)
[1] \"1\"   \"2\"   \"3\"   \"4\"   \"5\"   \"6\"   \"7\"   \"8\"   \"9\"   \"10\"  \"11\"  \"12\"  \"13\"  \"14\"
[15] \"15\"  \"16\"  \"17\"  \"18\"  \"19\"  \"20\"  \"21\"  \"22\"  \"23\"  \"24\"  \"25\"  \"26\"  \"27\"  \"28\"
[29] \"29\"  \"30\"  \"31\"  \"32\"  \"33\"  \"34\"  \"35\"  \"36\"  \"37\"  \"38\"  \"39\"  \"40\"  \"41\"  \"42\"
[43] \"43\"  \"44\"  \"45\"  \"46\"  \"47\"  \"48\"  \"49\"  \"50\"  \"51\"  \"52\"  \"53\"  \"54\"  \"55\"  \"56\"
[57] \"57\"  \"58\"  \"59\"  \"60\"  \"61\"  \"62\"  \"63\"  \"64\"  \"65\"  \"66\"  \"67\"  \"68\"  \"69\"  \"70\"
[71] \"71\"  \"72\"  \"73\"  \"74\"  \"75\"  \"76\"  \"77\"  \"78\"  \"79\"  \"80\"  \"81\"  \"82\"  \"83\"  \"84\"
[85] \"85\"  \"86\"  \"87\"  \"88\"  \"89\"  \"90\"  \"91\"  \"92\"  \"93\"  \"94\"  \"95\"  \"96\"  \"97\"  \"98\"
[99] \"99\"  \"100\" \"101\" \"102\" \"103\" \"104\" \"105\" \"106\" \"107\" \"108\" \"109\" \"110\" \"111\" \"112\"
[113] \"113\" \"114\" \"115\" \"116\" \"117\" \"118\" \"119\" \"120\" \"121\" \"122\" \"123\" \"124\" \"125\" \"126\"
[127] \"127\" \"128\" \"129\" \"130\" \"131\" \"132\" \"133\" \"134\" \"135\" \"136\" \"137\" \"138\" \"139\" \"140\"
[141] \"141\" \"142\" \"143\" \"144\" \"145\" \"146\" \"147\" \"148\" \"149\" \"150\"

> nrow(iris)
[1] 150

Les noms de lignes sont plus courants dans de petits jeux de données et servent à identifier facilement les observations. Par exemple, pour un petit jeu contenant des informations de santé sur les patients d'un médecin, les noms de lignes pourraient être les noms complets des patients.

Les noms de colonnes, en revanche, sont présents dans quasiment tous les jeux de données. Vous pouvez y accéder avec les fonctions colnames() ou names() :

colnames(iris)
[1] \"Sepal.Length\" \"Sepal.Width\"  \"Petal.Length\" \"Petal.Width\"  \"Species\"     

names(iris)
[1] \"Sepal.Length\" \"Sepal.Width\"  \"Petal.Length\" \"Petal.Width\"  \"Species\"

Pour sélectionner par les noms de lignes et colonnes, réutilisez simplement les crochets, précédés de l'objet de votre jeu de données :

Important : les noms de lignes comme de colonnes sont de type caractère, il est donc indispensable d'utiliser des guillemets simples ou doubles !

Créer des sous-ensembles par valeur

Sélectionner vos lignes et colonnes par valeur offre souvent le plus de flexibilité. Par exemple, vous pouvez extraire les données sur Iris setosa avec une condition comme celle-ci :

> iris[iris$Species == \"setosa\", ]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1           5.1         3.5          1.4         0.2  setosa
2           4.9         3.0          1.4         0.2  setosa
3           4.7         3.2          1.3         0.2  setosa
4           4.6         3.1          1.5         0.2  setosa

...

47          5.1         3.8          1.6         0.2  setosa
48          4.6         3.2          1.4         0.2  setosa
49          5.3         3.7          1.5         0.2  setosa
50          5.0         3.3          1.4         0.2  setosa

Les conditions comme iris$Species == \"setosa\" se placent dans l'élément des lignes à l'intérieur des crochets (c'est-à-dire le premier élément, avant la virgule). En plus de la condition en premier élément, vous pouvez préciser les colonnes par indice ou par nom en second élément. Dans la console ci-dessous, essayez de sélectionner uniquement les mesures de sépale de Iris setosa :

Récapitulatif

Dans ce tutoriel, vous avez :

  • Appris à créer des sous-ensembles par indice. Les lignes et colonnes sont indexées par des entiers de 1 jusqu'au nombre de lignes et de colonnes, respectivement.
  • Appris à sélectionner par nom. Vous avez vu que les noms de lignes sont rarement définis et que les noms de colonnes sont de type caractère.
  • Appris à utiliser des conditions dans l'élément des lignes (à l'intérieur des crochets) pour créer des sous-ensembles par valeur.
  • Appris à combiner ces méthodes pour plus de souplesse (par ex. : conditions pour les lignes et sélection par indice ou nom pour les colonnes).

Pour ancrer ces notions, essayez les exercices ci-dessous. La pratique fait la différence !

Exercices pratiques

Sélectionnez toutes les observations pour lesquelles la largeur du sépale est supérieure à la longueur du pétale.

Sélectionnez tous les Iris versicolor dont la largeur de sépale est supérieure à la largeur moyenne de sépale toutes espèces confondues.

Indiquez la largeur moyenne de sépale pour tous les Iris virginica dont la longueur de pétale est inférieure à 5 centimètres.

Envie d'explorer d'autres façons d'extraire des insights de vos données ? Découvrez ces cours sur DataCamp !

Consultez aussi notre tutoriel Merging Datasets in R.

Que vous compariez la réaction de différents segments démographiques à des campagnes marketing, que vous vous concentriez sur une période précise ou que vous extrayiez les informations de quelques produits de votre inventaire, créer des sous-ensembles de jeux de données vous permet d'obtenir des observations utiles. R est un excellent outil qui rend cette opération simple et intuitive. À la fin de ce tutoriel, vous saurez extraire précisément les informations dont vous avez besoin.

Créer un sous-ensemble ne modifie pas le contenu de vos données : vous sélectionnez simplement la partie la plus pertinente au regard de votre objectif. En général, il existe trois façons de sélectionner les lignes et les colonnes d'un jeu de données : par indice, par nom et par valeur.

Créer des sous-ensembles par indice (lignes et colonnes)

Une façon de sélectionner vos lignes et colonnes est d'utiliser les indices de votre jeu de données. C'est l'équivalent de formuler : « la première ligne », « toutes les lignes des 2e et 5e colonnes » ou « la première ligne des 2e à 5e colonnes ». Illustrons cela avec le jeu de données iris dans R. D'après sa documentation, « ce célèbre jeu de données (de Fisher ou d'Anderson) fournit, en centimètres, les mesures de longueur et de largeur du sépale et du pétale pour 50 fleurs de chacune des 3 espèces d'iris : Iris setosa, versicolor et virginica. »

Pour créer un sous-ensemble, utilisez des crochets après l'objet de votre jeu de données. Les lignes se spécifient en premier à l'intérieur des crochets, puis les colonnes en second, séparées par une virgule :

data[rows, columns]

Créer des sous-ensembles par nom (lignes et colonnes)

Dans R, les lignes et les colonnes disposent d'attributs de nom. Les noms de lignes sont rarement utilisés et, par défaut, correspondent à des indices : des entiers numérotés de 1 au nombre de lignes du jeu de données, comme vous l'avez vu précédemment. En appelant rownames() sur le jeu iris, vous verrez qu'ils sont simplement indexés de 1 à 150 :

 > rownames(iris)
[1] \"1\"   \"2\"   \"3\"   \"4\"   \"5\"   \"6\"   \"7\"   \"8\"   \"9\"   \"10\"  \"11\"  \"12\"  \"13\"  \"14\"
[15] \"15\"  \"16\"  \"17\"  \"18\"  \"19\"  \"20\"  \"21\"  \"22\"  \"23\"  \"24\"  \"25\"  \"26\"  \"27\"  \"28\"
[29] \"29\"  \"30\"  \"31\"  \"32\"  \"33\"  \"34\"  \"35\"  \"36\"  \"37\"  \"38\"  \"39\"  \"40\"  \"41\"  \"42\"
[43] \"43\"  \"44\"  \"45\"  \"46\"  \"47\"  \"48\"  \"49\"  \"50\"  \"51\"  \"52\"  \"53\"  \"54\"  \"55\"  \"56\"
[57] \"57\"  \"58\"  \"59\"  \"60\"  \"61\"  \"62\"  \"63\"  \"64\"  \"65\"  \"66\"  \"67\"  \"68\"  \"69\"  \"70\"
[71] \"71\"  \"72\"  \"73\"  \"74\"  \"75\"  \"76\"  \"77\"  \"78\"  \"79\"  \"80\"  \"81\"  \"82\"  \"83\"  \"84\"
[85] \"85\"  \"86\"  \"87\"  \"88\"  \"89\"  \"90\"  \"91\"  \"92\"  \"93\"  \"94\"  \"95\"  \"96\"  \"97\"  \"98\"
[99] \"99\"  \"100\" \"101\" \"102\" \"103\" \"104\" \"105\" \"106\" \"107\" \"108\" \"109\" \"110\" \"111\" \"112\"
[113] \"113\" \"114\" \"115\" \"116\" \"117\" \"118\" \"119\" \"120\" \"121\" \"122\" \"123\" \"124\" \"125\" \"126\"
[127] \"127\" \"128\" \"129\" \"130\" \"131\" \"132\" \"133\" \"134\" \"135\" \"136\" \"137\" \"138\" \"139\" \"140\"
[141] \"141\" \"142\" \"143\" \"144\" \"145\" \"146\" \"147\" \"148\" \"149\" \"150\"

> nrow(iris)
[1] 150

Les noms de lignes sont plus courants dans de petits jeux de données et servent à identifier facilement les observations. Par exemple, pour un petit jeu contenant des informations de santé sur les patients d'un médecin, les noms de lignes pourraient être les noms complets des patients.

Les noms de colonnes, en revanche, sont présents dans quasiment tous les jeux de données. Vous pouvez y accéder avec les fonctions colnames() ou names() :

colnames(iris)
[1] \"Sepal.Length\" \"Sepal.Width\"  \"Petal.Length\" \"Petal.Width\"  \"Species\"     

names(iris)
[1] \"Sepal.Length\" \"Sepal.Width\"  \"Petal.Length\" \"Petal.Width\"  \"Species\"

Pour sélectionner par les noms de lignes et colonnes, réutilisez simplement les crochets, précédés de l'objet de votre jeu de données :

Important : les noms de lignes comme de colonnes sont de type caractère, il est donc indispensable d'utiliser des guillemets simples ou doubles !

Créer des sous-ensembles par valeur

Sélectionner vos lignes et colonnes par valeur offre souvent le plus de flexibilité. Par exemple, vous pouvez extraire les données sur Iris setosa avec une condition comme celle-ci :

> iris[iris$Species == \"setosa\", ]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1           5.1         3.5          1.4         0.2  setosa
2           4.9         3.0          1.4         0.2  setosa
3           4.7         3.2          1.3         0.2  setosa
4           4.6         3.1          1.5         0.2  setosa

...

47          5.1         3.8          1.6         0.2  setosa
48          4.6         3.2          1.4         0.2  setosa
49          5.3         3.7          1.5         0.2  setosa
50          5.0         3.3          1.4         0.2  setosa

Les conditions comme iris$Species == \"setosa\" se placent dans l'élément des lignes à l'intérieur des crochets (c'est-à-dire le premier élément, avant la virgule). En plus de la condition en premier élément, vous pouvez préciser les colonnes par indice ou par nom en second élément. Dans la console ci-dessous, essayez de sélectionner uniquement les mesures de sépale de Iris setosa :

Récapitulatif

Dans ce tutoriel, vous avez :

  • Appris à créer des sous-ensembles par indice. Les lignes et colonnes sont indexées par des entiers de 1 jusqu'au nombre de lignes et de colonnes, respectivement.
  • Appris à sélectionner par nom. Vous avez vu que les noms de lignes sont rarement définis et que les noms de colonnes sont de type caractère.
  • Appris à utiliser des conditions dans l'élément des lignes (à l'intérieur des crochets) pour créer des sous-ensembles par valeur.
  • Appris à combiner ces méthodes pour plus de souplesse (par ex. : conditions pour les lignes et sélection par indice ou nom pour les colonnes).

Pour ancrer ces notions, essayez les exercices ci-dessous. La pratique fait la différence !

Exercices pratiques

Sélectionnez toutes les observations pour lesquelles la largeur du sépale est supérieure à la longueur du pétale.

Sélectionnez tous les Iris versicolor dont la largeur de sépale est supérieure à la largeur moyenne de sépale toutes espèces confondues.

Indiquez la largeur moyenne de sépale pour tous les Iris virginica dont la longueur de pétale est inférieure à 5 centimètres.

Envie d'explorer d'autres façons d'extraire des insights de vos données ? Découvrez ces cours sur DataCamp !

Consultez aussi notre tutoriel Merging Datasets in R.

Sujets

Contenus associés

Tutoriel

Tutoriel Python sur les structures de données

Tutoriel

Tableaux Python