Chapitre 6. Programmation en R
237
La fonction compl´ ementaire attr() permet de manipuler un seul attribut `
a la
fois alors que la fonction attributes() renvoie l’ensemble des attributs sous
forme d’une liste R.
> vect <- 1:10
> attr(vect,"test") # Renvoie NULL, car vect n’a pas d’attribut
# test.
NULL
> attributes(vect) # NULL car vect n’a pas d’attribut.
NULL
> # Affectation d’un attribut "attrib1" contenant la chaîne de
# caractères "TEST1".
> attr(vect,"attrib1") <- "TEST1"
> attr(vect,"attrib1")
[1] "TEST1"
> # Affectation d’un attribut "attrib2" contenant le vecteur
# c(1,3)
> attributes(vect)$attrib2 <- c(1,3)
> attributes(vect)
$attrib1
[1] "TEST1"
$attrib2
[1] 1 3
> attr(vect,"attrib2")
[1] 1 3
> # Modification de l’attribut "attrib1" et suppression de
# l’attribut "attrib2"
> attributes(vect)$attrib1 <- 3:1
> attr(vect,"attrib2") <- NULL
> attributes(vect)
$attrib1
[1] 3 2 1
> # Suppression simultanée de tous les attributs
> attributes(vect) <- NULL
> attributes(vect)
NULL
Le m´ ecanisme d’acc` es aux attributs est donc simple d’utilisation. L’exemple
pr´ ec´ edent nous a montr´ e comment changer les attributs ` a l’aide des fonctions
"attr<-"() et "attributes<-"(). La valeur d’un attribut est n’importe quel
objet R. Enfin, l’affectation d’un attribut ` a NULL le supprime.
6.4.1.1 Attribut class
Dans la section pr´ ec´ edente sur la programmation orient´ ee objet, nous avons
d´ ej` a manipul´ e l’attribut class au moyen des fonctions class() et "class<-"().
Cela illustre bien le fait qu’il n’est pas n´ ecessaire de savoir les manipuler directement. Reprenons l’exemple que nous avions choisi pour montrer quand il y a
Précédent

- 270/701

Suivant