startR 1: Objets de base

Lise Vaudor

21 mars 2017

Création d’objets

Nous avons vu dans la section précédente comment créer des objets très simples et comment les assigner à un environnement.

Il y a en fait une multitude de types d’objets possibles dans R. Ici nous allons aborder

Création d’objets: Vecteurs

On appelle vecteur toute séquence d’éléments de même type, par exemple:

v1=

    2.3 3.6 1.1 2.4 2.5 10.2 5.1 2.0 

v2=

    "Paris" "Lyon" "Marseille" "Rennes" "Montpellier"

ou v3=

    TRUE FALSE FALSE TRUE TRUE

Création d’objets: Vecteurs

On peut également créer des vecteurs correspondant à:

# valeurs de 0 à 10 par pas de 2
v4 <- seq(from=0,to=10,by=2)
v4
## [1]  0  2  4  6  8 10
# 20 valeurs regulierement espacees de 2 a 13
v5 <- seq(from=2,to=13,length.out=20)  
v5
##  [1]  2.000000  2.578947  3.157895  3.736842  4.315789  4.894737  5.473684
##  [8]  6.052632  6.631579  7.210526  7.789474  8.368421  8.947368  9.526316
## [15] 10.105263 10.684211 11.263158 11.842105 12.421053 13.000000
# nombres entiers de 0 a 10
v6 <- 0:10 
v6
##  [1]  0  1  2  3  4  5  6  7  8  9 10

Création d’objets: Vecteurs

Les vecteurs peuvent être de classes différentes selon le type de valeurs qu’ils contiennent (par contre toutes les valeurs d’un vecteur sont supposées être d’un même type).

Ils peuvent par exemple être de mode

Création d’objets: Vecteurs

Remarquez que l’on peut aussi utiliser c() pour combiner plusieurs vecteurs:

v4
## [1]  0  2  4  6  8 10
v5
##  [1]  2.000000  2.578947  3.157895  3.736842  4.315789  4.894737  5.473684
##  [8]  6.052632  6.631579  7.210526  7.789474  8.368421  8.947368  9.526316
## [15] 10.105263 10.684211 11.263158 11.842105 12.421053 13.000000
vglobal<-c(v4,v5)
vglobal
##  [1]  0.000000  2.000000  4.000000  6.000000  8.000000 10.000000  2.000000
##  [8]  2.578947  3.157895  3.736842  4.315789  4.894737  5.473684  6.052632
## [15]  6.631579  7.210526  7.789474  8.368421  8.947368  9.526316 10.105263
## [22] 10.684211 11.263158 11.842105 12.421053 13.000000

Création d’objets: Valeurs manquantes

Il peut arriver que certaines valeurs d’un objet soient non renseignées. En R, ces valeurs s’écrivent NA (pour not available).

Par exemple:

v9 <- c(3.2, NA, 8.9, 42.3, 59.2, NA)

Création d’objets: Facteurs

Les facteurs ressemblent généralement à des vecteurs de mode caractère, à la nuance près qu’ils comprennent généralement plusieurs niveaux, comme par exemple

f1=factor(c(rep("date1",5),rep("date2",5)))
f1
##  [1] date1 date1 date1 date1 date1 date2 date2 date2 date2 date2
## Levels: date1 date2
levels(f1)
## [1] "date1" "date2"

La nuance entre vecteurs et facteurs est importante pour un certain nombre de fonctions implémentées dans R, il est donc assez souvent nécessaire de convertir les vecteurs en facteurs et inversement.

Création d’objets: Matrices

On appelle “matrice” toute grille de valeurs (à 2 dimensions) , par exemple :

M1=

 1  3  7 
 
 2  8  0 

En R, cette matrice peut être créée de la manière suivante:

M1 <- matrix(c(1,2,3,8,7,0),nrow=2,ncol=3)
M1
##      [,1] [,2] [,3]
## [1,]    1    3    7
## [2,]    2    8    0

Création d’objets: Listes

Une liste est un assemblage d’objets de natures et/ou de tailles différentes. Par exemple, la liste l1

l1=list(sites=v2, nb=M1)
l1
## $sites
## [1] "Paris"       "Lyon"        "Marseille"   "Rennes"      "Montpellier"
## 
## $nb
##      [,1] [,2] [,3]
## [1,]    1    3    7
## [2,]    2    8    0

rassemble un vecteur (v2) et une matrice (M1) au sein d’un même objet.

En pratique, de nombreuses fonctions de R renvoient un objet de type liste (par exemple, un objet “régression linéaire”, renvoyé par la fonction lm, comprend entre autres choses un vecteur de coefficients de la régression et un vecteur de résidus de la régression (donc deux vecteurs de tailles différentes).

Création d’objets: tableaux de données

Comme une matrice, un tableau de données compte plusieurs lignes et colonnes. En revanche, les colonnes (ou variables) d’un tableau de données peuvent être de types différents, et sont nommées.

Espece Nom Date
Chien Lassie 1940
Dauphin Flipper 1964
Chat Garfield 1978
Eponge Bob 1999

Création d’objets, conversion d’objets

Pour interroger R quant au type (vecteur, facteur, tableau, matrice, etc.) ou au mode (numérique, caractère, logique, etc.) d’un objet, on utilise les fonctions de type is.____.

Par exemple:

v6
##  [1]  0  1  2  3  4  5  6  7  8  9 10
is.factor(v6)
## [1] FALSE
is.numeric(v6)
## [1] TRUE

Manipulation d’objets: Système d’indexation d’un vecteur ou d’un facteur

On peut s’intéresser à une partie d’un objet, par exemple un ou plusieurs éléments d’un vecteur ou d’un facteur.

On a accès au i\(^{eme}\) élément d’un vecteur/facteur par la commande:

v[i]

Par exemple:

v1
## [1]  2.3  3.6  1.1  2.4  2.5 10.2  5.1  2.0
v1[4]
## [1] 2.4
v1[1:3]  # les trois premieres valeurs
## [1] 2.3 3.6 1.1
v1[c(2,5,6)]
## [1]  3.6  2.5 10.2

Manipulation d’objets: Système d’indexation d’une matrice

Si l’on s’intéresse à l’élément d’une matrice ou d’un tableau de données qui se situe sur la i\(^{eme}\) ligne et sur la j\(^{eme}\) colonne, on y a accès par:

M[i,j]
M1
##      [,1] [,2] [,3]
## [1,]    1    3    7
## [2,]    2    8    0
M1[1,3] # la valeur sur la ligne 1 et la colonne 3
## [1] 7
M1[,3]  # toutes les valeurs sur la colonne 3
## [1] 7 0
M1[2,1:2] # les deux premieres valeurs de la ligne 2
## [1] 2 8

Manipulation d’objets: Système d’indexation d’une liste

Pour le i\(^{eme}\) élément d’une liste on utilise des double crochets, ou bien le nom de l’élément auquel on s’intéresse:

liste[[i]]
liste[["element"]]
liste$element

Par exemple, considérons notre liste l1:

l1
## $sites
## [1] "Paris"       "Lyon"        "Marseille"   "Rennes"      "Montpellier"
## 
## $nb
##      [,1] [,2] [,3]
## [1,]    1    3    7
## [2,]    2    8    0

Manipulation d’objets: Système d’indexation d’un tableau

Pour la i\(^{eme}\) variable d’un tableau on utilise des double crochets, ou bien le nom de la variable à laquelle on s’intéresse:

tableau[[i]]
tableau[["variable"]]
tableau$variable

Par exemple, considérons notre tableau t1:

t1
##    Espece      Nom Date
## 1   Chien   Lassie 1940
## 2 Dauphin  Flipper 1964
## 3    Chat Garfield 1978
## 4  Eponge      Bob 1999