English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Les tableaux sont également des objets en R, R peut créer des tableaux unidimensionnels ou multidimensionnels.
Les tableaux en R sont des ensembles de types homogènes, ce que nous avons appris précédemment, la matrice matrix, est en fait un tableau bidimensionnel.
Les relations entre vecteurs, matrices et tableaux peuvent être vues sur le graphique suivant :
La création de tableaux en R utilise la fonction array(), cette fonction utilise un vecteur comme paramètre d'entrée, et peut utiliser dim pour définir les dimensions du tableau.
La syntaxe de la fonction array() est la suivante :
array(data = NA, dim = length(data), dimnames = NULL)
Description des paramètres :
data le vecteur, les éléments du tableau.
dim les dimensions du tableau, par défaut, il s'agit d'un tableau unidimensionnel.
dimnames les noms des dimensions, doivent être une liste, par défaut, les noms ne sont pas assignés.
Dans l'exemple suivant, nous créons un 3 Lignes 3 Tableau bidimensionnel des colonnes :
# Création de deux vecteurs de longueurs différentes vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) # Création d'un tableau result <- array(c(vector1,vector2),dim = c(3,3,2)) print(result)
Le résultat de l'exécution du code suivant est :
, , 1 [1], [2], [3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15 , , 2 [1], [2], [3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15
Utilisez le paramètre dimnames pour assigner les noms des dimensions : :
# Création de deux vecteurs de longueurs différentes vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) noms de colonnes <- c("COL1"COL2"COL3") row.names <- c("ROW1"ROW2"ROW3") matrix.names <- c("Matrix1"Matrix2") # Création d'un tableau, et assignation des noms des dimensions result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names,column.names,matrix.names)) print(result)
Le résultat de l'exécution du code suivant est :
, , Matrice1 COL1 COL2 COL3 ROW1 5 10 13 ROW2 9 11 14 ROW3 3 12 15 , , Matrice2 COL1 COL2 COL3 ROW1 5 10 13 ROW2 9 11 14 ROW3 3 12 15
Si vous souhaitez obtenir un élément d'un tableau, vous pouvez utiliser l'index de colonne et l'index de ligne de l'élément, sous forme de coordonnées.
# Création de deux vecteurs de longueurs différentes vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) noms de colonnes <- c("COL1"COL2"COL3") row.names <- c("ROW1"ROW2"ROW3") matrix.names <- c("Matrix1"Matrix2") # Création d'un tableau result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names, column.names, matrix.names)) # Affichage de l'élément de la troisième ligne du second tableau print(result[3,,,2]) # Affichage de l'élément de la troisième colonne de la première ligne du premier tableau print(result[1,3,1]) # Affichage de la deuxième matrice print(result[,,2])
Le résultat de l'exécution du code suivant est :
COL1 COL2 COL3 3 12 15 [1] 13 COL1 COL2 COL3 ROW1 5 10 13 ROW2 9 11 14 ROW3 3 12 15
Comme le tableau est composé de matrices multidimensionnelles, nous pouvons accéder aux éléments du tableau en accédant aux éléments des matrices.
# Création de deux vecteurs de longueurs différentes vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) # Création d'un tableau array1 <- array(c(vector1,vector2),dim = c(3,3,2)) # Création de deux vecteurs de longueurs différentes vector3 <- c(9,1,0) vector4 <- c(6,0,11,3,14,1,2,6,9) array2 <- array(c(vector1,vector2),dim = c(3,3,2)) # Création de matrices à partir d'un tableau matrix1 <- array1[,,2] matrix2 <- array2[,,2] # Addition de matrices result <- matrix1+matrix2 print(result)
Le résultat de l'exécution du code suivant est :
[1], [2], [3] [1,] 10 20 26 [2,] 18 22 28 [3,] 6 24 30
De plus, nous pouvons utiliser apply() Effectue des calculs interdimensionnels sur les éléments du tableau, la syntaxe est la suivante :
apply(x, marge, fun)
Description des paramètres :
x Tableau
marge Nom des données
fun Fonction de calcul
Nous allons utiliser la fonction apply() pour calculer la somme des nombres de chaque ligne de deux matrices dans un tableau.
# Création de deux vecteurs de longueurs différentes vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) # Création d'un tableau new.array <- array(c(vector1,vector2),dim = c(3,3,2)) print(new.array) # Somme des nombres de la première ligne de toutes les matrices du tableau result <- apply(new.array, c(1), sum) print(result)
Le résultat de l'exécution du code suivant est :
, , 1 [1], [2], [3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15 , , 2 [1], [2], [3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15