Begin'R
Les statistiques avec R
Navigation
[Retour au sommaire]
# Vérification du type de variables avec `str()` Les variables d'un jeu de données peuvent être de nature variée. La fonction `read.csv2()` utilisée ci-dessus affecte automatiquement un type à chaque variable en fonction de la nature des données lues dans le fichier. La fonction **`str()`** permet de visualiser les types affectés par R aux variables. Le tableau suivant liste les différents types de variables que l'on peut rencontrer dans une base de données ainsi que le résultat attendu de `str()`. Les exemples de la suite sont tirés du [jeu de données Melons](caps_2_1_presentation_donnees_Melons.html). | Type de variable |détail | Résultat de `str()` | |--------------------|----------------------|--------------------| |Qualitative nominale |[ici](#facteur) | Factor | |Qualitative ordinale |[ici](#ordi) | Ord.factor (ordered.factor)| |Quantitative discrète |[ici](#entier) | int (integer) | |Quantitative continue |[ici](#numerique) |num (numeric) | :Aide {#numerique, toggle=popup} Ce type de variable représente une quantité avec des valeurs non isolées comme par exemple la variable `Poids` dans l'ensemble de données sur les melons. :Aide {#entier, toggle=popup} Ce type de variable représente une quantité avec des valeurs isolées comme par exemple la variable `Plantation` dans l'ensemble de données sur les melons. :Aide {#facteur, toggle=popup} Ce type de variable représente un nom ou une catégorie comme par exemple la variable `Variete` dans l'ensemble de données sur les melons. :Aide {#ordi, toggle=popup} Ce type de variable qualitative a des modalités ordonnées comme par exemple la variable `Creneau` dans l'ensemble de données sur les melons. :Exemple {#example_strmelons} `str()` est appliquée à l'objet `Melons`. ```r str(Melons) ``` ``` ## 'data.frame': 135 obs. of 12 variables: ## $ Essai : int 1 2 3 4 5 6 7 8 9 10 ... ## $ Annee : int 2005 2005 2004 2004 2004 2004 2004 2004 2004 2004 ... ## $ Variete : Factor w/ 12 levels "Anasta","Bastille",..: 5 3 3 9 5 12 11 4 7 1 ... ## $ Creneau : int 1 1 1 1 1 1 1 1 1 1 ... ## $ Couverture: int 1 1 1 1 1 5 5 5 5 5 ... ## $ Plantation: int 83 83 88 88 88 123 123 123 123 123 ... ## $ Duree : int 81 81 83 83 83 63 63 63 63 63 ... ## $ N : int 72 72 140 140 140 181 181 181 181 181 ... ## $ P : int 66 66 164 164 164 169 169 169 169 169 ... ## $ K : int 108 108 187 187 187 200 200 200 200 200 ... ## $ Rdt : int 291 321 378 349 311 204 202 214 219 206 ... ## $ Poids : int 888 897 731 743 757 960 939 995 1138 1149 ... ``` Dans l'onglet description du fichier `DonneesMelons.xlsx`, il est indiqué que `Variete` est une variable nominale et R en indiquant Factor pour cette variable ne se trompe pas. De la même manière la variable `Plantation` est bien une variable quantitative discrète (`int` pour R). Par contre R se trompe pour toutes les autres variables : `Creneau` n'est pas une variable quantitative discrète mais une variable ordinale, `Couverture` non plus n'est pas une variable quantitative discrète mais une variable qualitative nominale et les 3 restantes (`N`, `Poids` et `Rdt`) ne sont pas des variables quantitatives discrètes mais continues. :Compléments : Que se passe-t-il si l'on n'a pas le bon type des variables ? {#pourallerplusloin_CSV_bloc_Notes, toggle=collapse, title-display=show} Dans la base `Melons`, la variable qualitative nominale `Couverture` est confondue avec une variable quantitative discrète car ses modalités sont définies par des nombres. Cela peut peut poser problème sur certains traitements. Par exemple, afficher des résumés numériques pour la variable `Couverture` n'a aucun sens. ```r Melons$Couverture ``` ``` ## [1] 1 1 1 1 1 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 ## [38] 1 1 1 1 1 1 1 1 1 3 3 1 3 3 3 3 3 3 3 3 1 3 1 3 3 5 3 3 3 5 5 3 3 3 3 3 3 ## [75] 3 1 3 1 5 5 5 5 5 5 5 5 5 5 5 3 5 5 5 5 5 3 5 3 3 1 1 3 5 3 3 3 3 5 3 3 3 ## [112] 1 3 3 5 3 3 5 1 3 5 5 5 5 5 5 3 5 5 5 5 5 5 5 5 ``` ```r summary(Melons$Couverture) ``` ``` ## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 1.000 1.000 3.000 3.193 5.000 5.000 ``` Pour la variable `Couverture` il serait préférable d'avoir les effectifs de chaque niveau de la variable, comme ce qui est présenté pour la variable `Variete`. ```r summary(Melons$Variete) ``` ``` ## Anasta Bastille Cezanne Escrito Fidji Heliobel Hugo Indola ## 8 6 25 14 10 1 12 6 ## Manta Mehari Metis Theo ## 30 7 9 7 ``` La modification du type de variable est abordée dans la capsule [correspondante](caps_2_7_corriger_type_variables.html). :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)