240
Le logiciel R - Maˆ ıtriser le langage
, , 3
[,1] [,2]
[1,]
9
11
[2,]
10
12
> is.vector(mat)
[1] FALSE
> class(mat)
[1] "array"
En supprimant l’attribut dim, nous constatons que l’objet mat est devenu
un simple vecteur. En lui affectant un vecteur `
a trois entiers, nous constatons
que l’objet mat est maintenant un tableau de dimension 3. Nous comprenons
alors que la diff´ erence de comportement entre les vecteurs, les matrices et les
tableaux r´ eside dans la valeur de l’attribut dim.
Attention
Malgr´ e une mˆ eme sortie d’affichage, un vecteur et un tableau ` a un indice
sont trait´ es diff´ eremment en R comme le montrent ces quelques lignes de
commandes :
> dim(mat) <- 12
> mat
[1] 1 2 3 4 5 6 7 8 9 10 11 12
> is.vector(mat)
[1] FALSE
> class(mat)
[1] "array"
> identical(mat,1:12)
[1] FALSE
> dim(mat) <- NULL
> mat
[1] 1 2 3 4 5 6 7 8 9 10 11 12
> is.vector(mat)
[1] TRUE
> class(mat)
[1] "integer"
> identical(mat,1:12)
[1] TRUE
Nous pourrions croire que nous avons tout dit sur l’utilisation de l’attribut
dim et pourtant il reste une derni` ere chose assez int´ eressante ` a noter. La seule
diff´ erence existant entre un vecteur et une liste (list) est que les ´ el´ ements
d’un vecteur doivent ˆ etre du mˆ eme type. Les matrices et tableaux contiennent
g´ en´ eralement des ´ el´ ements de mˆ eme nature. Cette contrainte est notamment
tr` es importante pour les op´ erations matricielles. Mais en tant que structure
de stockage, il est possible d’imaginer que les concepts de matrices et tableaux
Précédent

- 273/701

Suivant