2.1 Les données

    Les données se caractérisent par un type (scalaire, vecteur, tableau, . . .), un mode (numérique, caractere, logique), une taille, une valeur et un nom.
    Caractéristiques d'un objet
    Type Les données manipulées par R peuvent  etre de différents types :
    -- vecteur : suite d'éléments (une dimension),
    -- tableau : tableau `a k dimensions,
    -- matrice : tableau `a 2 dimensions,
    -- facteur : suite d'éléments catégoriels avec les différents niveaux possibles,
    -- tableau de données : ensemble de vecteurs de meme longueur,
    -- séries temporelles : jeu de données de type séries temporelles (avec fréquence, dates),
    -- liste : liste d'objets.
    Mode Les éléments stockés dans un objet peuvent ˆetre de 4 modes différents :
    -- numérique,
    -- caractere (entre guillemets),
    -- complexe,
    -- logique (TRUE ou FALSE),

    Création d'un vecteur

         L'op´erateur d'assemblage c() est une facon implicite pour cr´eer un vecteur :
    > x <- c(1, 3, 5, 7, 9)
    > x
    [1] 1 3 5 7 9
    > length(x)
    [1] 5
    > y <- c(x, 11, 13)
    > y
    [1] 1 3 5 7 9 11 13
    Il est possible de saisir une série de valeurs numériques, caractères ou logiques.
    >serie1<-c(1.2,36,5.33,-26.5)
    serie1 est un vecteur numérique. Comment le savoir ? Tapez la commande class ou mode sur le nom de votre vecteur.
    >serie1
    [1] 1.20 36.00 5.33 -26.50
     >serie2<-c("bleu","vert","marron")
    serie2 est un vecteur de chaînes de caractères.
    >serie2
    [1] "bleu" "vert" "marron"
    Remarque Si un vecteur est composé de caractères et de nombres, le vecteur sera un vecteur de chaînes de caractères. Quand les composantes du vecteur sont des chaînes de caractères, il est obligatoire de les déclarer entre guillements, sinon R ne reconnaît pas les composantes du vecteur :
    >serie2<-c(bleu,vert,marron)
    Error : Object "bleu" not found
     >serie3<-c(T,T,F,F,T)
    serie3 est un vecteur logique.
    >serie3
    [1] TRUE TRUE FALSE FALSE TRUE
    Lors d'une étude statistique, il peut arriver que certaines données ne soient pas disponibles : la donnée est dite manquante. Pour saisir une donnée manquante, il est conseillé d'utiliser le symbole NA (Not Available), quelle que soit la nature de l'objet : numérique, caractère ou logique :
    >serie4<-c(1.2,36,NA,-26.5)
    La troisième valeur est manquante.
    >serie4
    [1] 1.20 36.00 NA -26.50
    >mode(serie1)
    [1] "numeric"
    >mode(serie2)
    [1] "character"
    >mode(serie3)
    [1] "logical"
    >length(serie1)
    [1] 4
    >length(serie2)
    [1] 3
    >length(serie3)
    [1] 5
         Si vous souhaitez créer la suite d'entiers de 1 à 12, on peut procéder de la sorte :
    >suite<-1 :12
    >suite
    [1] 1 2 3 4 5 6 7 8 9 10 11 12
          On peut également utiliser la fonction seq, qui crée une suite (séquence) de nombres et possède trois arguments : from, to et by :
    >seq(from=1,to=12,by=1)
    [1] 1 2 3 4 5 6 7 8 9 10 11 12
          On peut également écrire plus simplement :
    >seq(1,12,1)
    [1] 1 2 3 4 5 6 7 8 9 10 11 12
    
    Si vous souhaitez créer un vecteur formé par les éléments d'une suite arithmétique de premier terme 20, de dernier terme 40 et de raison 5, vous pouvez encore utiliser la fonction seq :
    >seq(from=20,to=40,by=5)
    [1] 20 25 30 35 40
    >seq(1, 5, length = 10)
    
     Saisie au clavier d'un jeu de données
    En utilisant la fonction scan(), la saisie d'une série de données peut paraître moins fastidieuse.
    >jeu1<-scan()
    R vous redonne la main et vous pouvez taper les valeurs du jeu de données :
    1 :1.2
    2 :36
    3 :5.33
    4 :-26.5
    5 :le premier retour-chariot après une chaîne vide met fin à la saisie.
    >jeu1
    [1] 1.20 36.00 5.33 -26.50
    Éléments d'un vecteur
    Il est possible de demander l'affichage d'un (ou de plusieurs) élément(s) d'un vecteur en spécifiant entre crochets, en plus du nom du vecteur, l'indice de l'élément du vecteur. Par exemple, pour afficher respectivement le troisième élément de serie1 et ses troisième et quatrième éléments, on utilisera :
    >serie1[3]
    [1] 5.33
    >serie1[3 :4]
    [1] 5.33 -26.50
     Extraire des données d'un vecteur
    Il est possible d'extraire des données d'un vecteur.
    1. Utiliser un vecteur pour préciser le numéro d'ordre des composantes à extraire. Ainsi, pour extraire les 2ème et 5ème composantes du vecteur x :
    >x[c(2,5)]
    [1] 3.5 12.0
    2. L'utilisation du signe « tiret »permet de supprimer des composantes, par exemple pour supprimer les 2ème et 3ème composantes du vecteur x :
    >x[-c(2,3)]
    [1] 2.3 14.0 12.0
    3. Utiliser un vecteur formé de valeurs logiques. Par exemple, pour obtenir un vecteur ne contenant que les composantes supérieures à 4, vous pouvez utiliser la commande :
    >x[x>4]
    [1] 6 14 12
    Si vous disposez de deux vecteurs ayant le même nombre de composantes, vous pouvez demander à afficher les valeurs de l'un pour lesquelles les valeurs de l'autre sont supérieures (ou inférieures) à une certaine valeur. Par exemple, les vecteurs x et y sont composés de 5 valeurs. Vous pouvez demander à extraire de y les valeurs de y pour lesquelles x est supérieur à 4 en utilisant la ligne de commandes suivante :
    >y[x>4]
    [1] 0.7 1.0 3.5
    Faire des calculs sur les composantes d'un vecteur
    R peut faire des calculs sur l'ensemble des composantes d'un vecteur :
    >20+x*5
    [1] 31.5 37.5 50.0 90.0 80.0
    >(x+y)/2
    [1] 17.125 20.875 28.250 51.000 46.375
    Remplacer des données dans un vecteur
    Il est possible de remplacer certaines composantes d'un vecteur par de nouvelles valeurs. Considérons une suite de valeurs numériques :
    >x<-1 :10
    Si vous voulez remplacer le 3ème valeur de x par 35, vous utiliserez la ligne de commandes suivante
    >x[3]<-35
    >x
    [1] 1 2 35 4 5 6 7 8 9 10
    Si vous voulez remplacer la valeur 1 par la valeur 25, vous utiliserez alors la ligne de commandes suivante :
    >x[x==1]<-25
    >x
    [1] 25 2 35 4 5 6 7 8 9 10
    Si vous voulez remplacer toutes les valeurs supérieures ou égales à 5 par 20, vous utiliserez la ligne de commandes suivante :
    >x[x>=5]<-20
    >x
    [1] 20 2 20 4 20 20 20 20 20 20
    Répéter les données d'un vecteur
    La fonction rep admet deux arguments x et times et crée un vecteur où x est répété times fois.
    Exemple .4 Vous créez une variable donnees par :
    >donnees<-c(1,2,3)
    Si vous voulez qu'un nouveau vecteur contienne deux fois le vecteur donnees, alors vous écrirez :
    >rep(x=donnees,times=2)
    Exemple .5 Vous pouvez également demander qu'un vecteur contienne 50 fois la valeur 1 :
    >rep(1,50)
    Exemple .6 ou 4 fois la chaîne de caractères "chien" :
    >rep("chien",4)
    > rep(1:5, times = 3)
    [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
    > rep(1:5, each = 2)
    [1] 1 1 2 2 3 3 4 4 5 5
    Nommer les composantes d'un vecteur
    Il est possible de donner un nom à chaque composante d'un vecteur. Le vecteur notes.Jean contient les notes obtenues par Jean en anglais, informatique et biologie. Première façon : vous pouvez utiliser la commande :
    >notes.Jean<-c(anglais=12,informatique=19.5,biologie=14)
    Affichez ensuite le vecteur notes.Jean, on obtient le résultat suivant : anglais informatique biologie
    12.0 19.5 14.0
    Seconde façon : on peut nommer les composantes d'un vecteur en définissant un vecteur formé de chaînes de caractères puis en utilisant le fonction names :
    >matiere<-c("anglais","informatique","biologie")
    >matiere
    >note<-c(12,19.5,14)
    >names(note)<-matiere
    >note
    anglais informatique biologie
    12.0 19.5 14.0
    Remarque Pour supprimer les noms, on tapera la ligne de commandes :
    >names(note)<-NULL
     Trier les composantes d'un vecteur
    Vous pouvez trier les composantes d'un vecteur par ordre croissant en utilisant la fonction sort. Retour à l'exemple 4.7 :
    >sort(note)
    [1] 12.0 14.0 19.5
    ou dans l'ordre décroissant :
    >rev(sort(note))
    [1] 19.5 14.0 12.0
    
    




Modifié le: mardi 28 juin 2022, 23:02