Begin'R
Les statistiques avec R
Navigation
[Retour au sommaire]
# Extraire un sous ensemble avec la fonction `subset()` La fonction **`subset()`** permet d'extraire un sous ensemble en posant une condition sur une variable. Les exemples de la suite sont tirés du [jeu de données Melons](caps_2_1_presentation_donnees_melons.html). | Rôle | Commande R | Arguments | Exemples | Exercices | |:---------:|:-----------:|:---------:|:--------:|:---------:| | Extraire un sous-ensemble d'individus | `subset()` | | [ici](#example1_subset_ind) | [ici](#exo1_subset_ind) | | Extraire un sous-ensemble de variables | `subset()` | `select` | [ici](#example1_subset_var) | | | Extraire un sous-ensemble d'individus et de variables | `subset()` | `select` | [ici](#example1_subset_ind_var) | | :Exemple {#example1_subset_ind, toggle=popup} L'instruction suivante permet d'extraire les lignes de la base `Melons` pour lesquelles la variable `Variete` est égale à `Theo`. ```r Melons_Theo <- subset(Melons, Variete == 'Theo') Melons_Theo ``` ``` ## Essai Annee Variete Creneau Couverture Plantation Duree N P K Rdt ## 6 6 2004 Theo 1 5 123 63 181 169 200 204 ## 12 12 2003 Theo 1 5 131 58 170 66 108 354 ## 62 62 2002 Theo 3 3 114 88 77 152 120 336 ## 63 63 2002 Theo 5 5 141 72 120 200 145 269 ## 64 64 2003 Theo 3 3 112 64 72 184 120 329 ## 65 65 2004 Theo 3 3 123 70 117 168 60 331 ## 66 66 2005 Theo 3 3 116 72 90 168 60 39 ## Poids ## 6 960 ## 12 1250 ## 62 923 ## 63 815 ## 64 921 ## 65 999 ## 66 921 ``` :Remarque Noter l'utilisation du double signe `==`. L'expression `Variete=='Theo'` est en réalité un vecteur de booléens, dont les valeurs sont `TRUE` ou `FALSE` selon que la variété est ou non la variété `Theo`. Si l'on souhaite extraire les indicidus dont la variable `Variete` n'est pas `Theo`, on utilise l'expression `Variete!='Theo'` :Exemple : Calcul de la moyenne du rendement de certains melons {#exo1_subset_ind, toggle=popup} * Extraire une base de données contenant uniquement les melons de la variété `Cezanne` de l'année `2005`. * Calculer la valeur moyenne du rendement (variable `Rdt`) de ces melons. [Aide](#aide_exo1_subset_ind) :Aide{#aide_exo1_subset_ind, toggle=popup} Pour extraire les melons de la variété `Cezanne` de l'année `2005`, on pourra procéder en deux étapes. On extraira tout d'abord les melons de la variété `Cezanne` puis de cette nouvelle base on extraira ceux de l'année `2005`. :Reponse{#corrige_exo1_subset_ind, toggle=collapse, title-display=show} ```r Cezanne <- subset(Melons, Variete == 'Cezanne') # On extrait les individus de la variété Cezanne Cezanne_2015 <- subset(Cezanne, Annee == 2005) # Puis melons Cezanne de l'année 2005 mean(Cezanne_2015$Rdt) # Et enfin, on calcule le rendement moyen. ``` ``` ## [1] 206.8333 ``` :Remarque L'extraction des individus aurait pu se faire en une seule ligne en utilisant une double condition sur la variété et sur l'année : ```r Cezanne_2015 <- subset(Melons, Variete == 'Cezanne' & Annee == 2005) ``` :Exemple {#example1_subset_var, toggle=popup} La fonction `subset()` permet également d'extraire des colonnes d'un jeu de données. Pour cela, il faut utiliser l'argument `select` qui spécifie le nom (ou le numéro) des variables à extraire du jeu de données. Par exemple, les deux instructions suivantes permettent d'extraire les variables `Variete` et `Poids` de la base `Melons`. ```r donnees <- subset(Melons, select = c(Variete, Poids)) donnees <- subset(Melons, select = c(3, 12)) ``` Noter que ces instructions sont également équivalentes à l'instruction `donnees <- Melons[,c(3,12)]` vue dans [la partie accéder à un sous-ensemble de variables et/ou d'individus](caps_2_9_extraire_sous_ensemble.html). :Exemple {#example1_subset_ind_var, toggle=popup} On extrait ici de la base `Melons` les variables `Variete` et `Poids`, et uniquement les individus pour lesquels la variable `Variete` est égale à `Theo`. ```r donnees <- subset(Melons, Variete == 'Theo', select = c(Variete, Poids)) ``` :Suite de la Manipulation de données {#manipulation, toggle=collapse, title-display=hidden} [Présentation du jeu de données](caps_2_1_presentation_donnees_melons.html) : présentation du jeu de données "Melons" sur lequel sont basés les exemples de cette partie [Conversion Excel -> CSV](caps_2_2_conversion_exel_vers_csv.html) : Comment convertir un fichier Excel en un fichier .csv [Importation sous R d'un fichier CSV](caps_2_3_importation_csv.html) [Solutions aux problèmes d'importation d'un fichier CSV](caps_2_4_probleme_importation_csv.html) [Caractéristiques d'un jeu de données](caps_2_5_caracterisitique_jeu_donnees.html) [Vérification du type de variables](caps_2_6_verification_type_variables.html) [Corriger la nature d'une variable](caps_2_7_corriger_type_variables.html) [Transformantion d'un jeu de données](caps_2_8_transformer_jeu_donnees.html) [Accéder à un sous-ensemble de variables et/ou d'individus](caps_2_9_extraire_sous_ensemble.html) [Extraire un sous-ensemble avec la fonction "subset"](caps_2_10_extraire_sous_ensemble_subset.html) [Sauvegarder un jeu de données](caps_2_11_sauvegarder_jeu_donnees_csv.html) [Manipulation d'un tableau de données (dataframe)](caps_2_13_dataframe.html) [Exercice bilan](caps_2_12_exercice_bilan_manipulation_jeu_donnees.html)