244
Le logiciel R - Maˆ ıtriser le langage
[1] 1 2
$class
[1] "data.frame"
> names(df)
# Comme liste.
[1] "a" "b"
> dimnames(df) # Comme tableau : une liste de deux vecteurs.
[[1]]
[1] "1" "2"
[[2]]
[1] "a" "b"
> rownames(df) # Comme matrice : accès aux noms des lignes.
[1] "1" "2"
> colnames(df) # Comme matrice : accès aux noms des colonnes.
[1] "a" "b"
Les quatre derni` eres lignes fournissent les appels pour acc´ eder ` a ces attributs sans avoir ` a les manipuler directement. Les formes correspondantes
existent pour en modifier le contenu. Au passage, notons que l’attribut
class pr´ ecise la classe de l’objet.
6.4.2 Autres objets R
On peut dire que l’une des sp´ ecificit´ es du langage R est que la tr` es grande
majorit´ e des quantit´ es manipul´ ees en R sont allouables dans des variables et
ainsi r´ eutilisables plus tard. Les quelques rares exceptions sont pour la plupart
les structures de contrˆ ole. Les objets R sont de diff´ erents types, appel´ es classes.
Nous avons d´ ej` a vu les classes d’objets servant ` a stocker les structures de donn´ ees les plus courantes. Par la suite, nous choisirons de d´ ecrire trois autres types
d’objets. De mani` ere assez surprenante pour un utilisateur non averti, nous verrons qu’une formule et un environnement sont aussi consid´ er´ es par le R comme
des objets ` a part enti` ere. Nous introduirons aussi la notion d’expression R qui
est un objet dans lequel on peut stocker un morceau de code R ` a ex´ ecuter en
diff´ er´ e.
6.4.2.1 Expression R
Dans les premi` eres utilisations du syst` eme R, on a pass´ e sous silence des
structures R qui permettent de d´ ecrire les bases syntaxiques du langage R. Respectant sa philosophie de pouvoir enregistrer le plus de composantes possibles,
le R est capable de manipuler une expression R et de la d´ ecouper en une suite
d’entit´ es atomiques (par exemple, call, name ...). Nous ne ferons ici qu’´ evoquer
ses capacit´ es sans rentrer dans les d´ etails. Nous nous limitons aux traitements
des expressions R qui ont un r´ eel int´ erˆ et en tant que d´ eveloppeur R. Il est difficile de d´ efinir rigoureusement ce qu’est une expression R. Nous proposons la
d´ efinition suivante fond´ ee sur l’utilisation du R en ligne de commande. Une
Le logiciel R - Maˆ ıtriser le langage
[1] 1 2
$class
[1] "data.frame"
> names(df)
# Comme liste.
[1] "a" "b"
> dimnames(df) # Comme tableau : une liste de deux vecteurs.
[[1]]
[1] "1" "2"
[[2]]
[1] "a" "b"
> rownames(df) # Comme matrice : accès aux noms des lignes.
[1] "1" "2"
> colnames(df) # Comme matrice : accès aux noms des colonnes.
[1] "a" "b"
Les quatre derni` eres lignes fournissent les appels pour acc´ eder ` a ces attributs sans avoir ` a les manipuler directement. Les formes correspondantes
existent pour en modifier le contenu. Au passage, notons que l’attribut
class pr´ ecise la classe de l’objet.
6.4.2 Autres objets R
On peut dire que l’une des sp´ ecificit´ es du langage R est que la tr` es grande
majorit´ e des quantit´ es manipul´ ees en R sont allouables dans des variables et
ainsi r´ eutilisables plus tard. Les quelques rares exceptions sont pour la plupart
les structures de contrˆ ole. Les objets R sont de diff´ erents types, appel´ es classes.
Nous avons d´ ej` a vu les classes d’objets servant ` a stocker les structures de donn´ ees les plus courantes. Par la suite, nous choisirons de d´ ecrire trois autres types
d’objets. De mani` ere assez surprenante pour un utilisateur non averti, nous verrons qu’une formule et un environnement sont aussi consid´ er´ es par le R comme
des objets ` a part enti` ere. Nous introduirons aussi la notion d’expression R qui
est un objet dans lequel on peut stocker un morceau de code R ` a ex´ ecuter en
diff´ er´ e.
6.4.2.1 Expression R
Dans les premi` eres utilisations du syst` eme R, on a pass´ e sous silence des
structures R qui permettent de d´ ecrire les bases syntaxiques du langage R. Respectant sa philosophie de pouvoir enregistrer le plus de composantes possibles,
le R est capable de manipuler une expression R et de la d´ ecouper en une suite
d’entit´ es atomiques (par exemple, call, name ...). Nous ne ferons ici qu’´ evoquer
ses capacit´ es sans rentrer dans les d´ etails. Nous nous limitons aux traitements
des expressions R qui ont un r´ eel int´ erˆ et en tant que d´ eveloppeur R. Il est difficile de d´ efinir rigoureusement ce qu’est une expression R. Nous proposons la
d´ efinition suivante fond´ ee sur l’utilisation du R en ligne de commande. Une
