236
Le logiciel R - Maˆ ıtriser le langage
SECTION 6.4
† Aller plus loin en programmation R
Avant de programmer dans un langage, il est bon de connaˆ ıtre l’esprit dans
lequel il a ´ et´ e con¸ cu. Dans cette section, nous mettrons plus en avant des structures du langage R qu’il n’est pas n´ ecessaire de connaˆ ıtre dans une premi` ere
utilisation du R, mais qui se r´ ev` elent fort appr´ eciables quand on d´ ecide d’approfondir son niveau d’utilisation du langage R. Ce sont des ´ el´ ements qui font
du R un langage original et puissant. Nous conseillons ` a un utilisateur d´ ebutant d’´ eventuellement survoler cette section sans chercher ` a en maˆ ıtriser les
concepts qui y sont abord´ es. En effet, toutes les informations r´ ecolt´ ees ici sont
de deuxi` eme niveau, dans le sens o` u elles peuvent ˆ etre ´ evit´ ees tout en permettant une utilisation tout `
a fait s´ erieuse du R.
6.4.1 Attributs R
Un objet R contient une information principale v´ ehicul´ ee au moyen des
structures de base du R pr´ esent´ ees dans ce livre. Il y a un deuxi` eme niveau
d’information que l’on qualifiera d’information annexe ou d’information secondaire. Ce type d’information est attach´ e `
a un objet au moyen d’attributs et
accessible via la fonction attributes().
> mat <- matrix(1:10,nrow=2)
> mat
[,1] [,2] [,3] [,4] [,5]
[1,]
1
3
5
7
9
[2,]
2
4
6
8
10
> class(mat)
[1] "matrix"
> attributes(mat)
$dim
[1] 2 5
Nous commenterons plus tard cette sortie. Insistons de nouveau sur le fait
que ce m´ ecanisme se veut transparent pour l’utilisateur qui sera g´ en´ eralement
plus int´ eress´ e par le contenu de l’objet R. Dans une utilisation de base, il est par
ailleurs d´ econseill´ e de directement modifier les attributs. Ce point de vue est
justifi´ e par le fait que de nombreuses fonctions R sont propos´ ees pour les manipuler indirectement. En revanche, un d´ eveloppeur plus curieux de comprendre
comment le R fonctionne pourra d´ ecouvrir quelques caract´ eristiques compl´ ementaires qui g´ en´ eralement ´ eclairent sur le comportement de l’objet lui-mˆ eme.
Nous avons d´ ej` a, sans le faire de mani` ere directe, manipul´ e l’attribut class au
moyen des fonctions class() et "class<-"(). Par la suite, nous manipulerons
aussi les trois autres principaux attributs dim, names et dimnames fort utilis´ es
dans la gestion interne du R. Illustrons l’utilisation des attributs sur un exemple
sans r´ eel int´ erˆ et autre que celui de pr´ esenter comment manipuler les attributs.
Le logiciel R - Maˆ ıtriser le langage
SECTION 6.4
† Aller plus loin en programmation R
Avant de programmer dans un langage, il est bon de connaˆ ıtre l’esprit dans
lequel il a ´ et´ e con¸ cu. Dans cette section, nous mettrons plus en avant des structures du langage R qu’il n’est pas n´ ecessaire de connaˆ ıtre dans une premi` ere
utilisation du R, mais qui se r´ ev` elent fort appr´ eciables quand on d´ ecide d’approfondir son niveau d’utilisation du langage R. Ce sont des ´ el´ ements qui font
du R un langage original et puissant. Nous conseillons ` a un utilisateur d´ ebutant d’´ eventuellement survoler cette section sans chercher ` a en maˆ ıtriser les
concepts qui y sont abord´ es. En effet, toutes les informations r´ ecolt´ ees ici sont
de deuxi` eme niveau, dans le sens o` u elles peuvent ˆ etre ´ evit´ ees tout en permettant une utilisation tout `
a fait s´ erieuse du R.
6.4.1 Attributs R
Un objet R contient une information principale v´ ehicul´ ee au moyen des
structures de base du R pr´ esent´ ees dans ce livre. Il y a un deuxi` eme niveau
d’information que l’on qualifiera d’information annexe ou d’information secondaire. Ce type d’information est attach´ e `
a un objet au moyen d’attributs et
accessible via la fonction attributes().
> mat <- matrix(1:10,nrow=2)
> mat
[,1] [,2] [,3] [,4] [,5]
[1,]
1
3
5
7
9
[2,]
2
4
6
8
10
> class(mat)
[1] "matrix"
> attributes(mat)
$dim
[1] 2 5
Nous commenterons plus tard cette sortie. Insistons de nouveau sur le fait
que ce m´ ecanisme se veut transparent pour l’utilisateur qui sera g´ en´ eralement
plus int´ eress´ e par le contenu de l’objet R. Dans une utilisation de base, il est par
ailleurs d´ econseill´ e de directement modifier les attributs. Ce point de vue est
justifi´ e par le fait que de nombreuses fonctions R sont propos´ ees pour les manipuler indirectement. En revanche, un d´ eveloppeur plus curieux de comprendre
comment le R fonctionne pourra d´ ecouvrir quelques caract´ eristiques compl´ ementaires qui g´ en´ eralement ´ eclairent sur le comportement de l’objet lui-mˆ eme.
Nous avons d´ ej` a, sans le faire de mani` ere directe, manipul´ e l’attribut class au
moyen des fonctions class() et "class<-"(). Par la suite, nous manipulerons
aussi les trois autres principaux attributs dim, names et dimnames fort utilis´ es
dans la gestion interne du R. Illustrons l’utilisation des attributs sur un exemple
sans r´ eel int´ erˆ et autre que celui de pr´ esenter comment manipuler les attributs.
