R Language
matrici
Ricerca…
introduzione
Le matrici memorizzano i dati
Creazione di matrici
Sotto il cofano, una matrice è un tipo speciale di vettore con due dimensioni. Come un vettore, una matrice può avere solo una classe di dati. È possibile creare matrici utilizzando la funzione matrix
come mostrato di seguito.
matrix(data = 1:6, nrow = 2, ncol = 3)
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
Come puoi vedere, questo ci fornisce una matrice di tutti i numeri da 1 a 6 con due righe e tre colonne. Il parametro data
accetta un vettore di valori, nrow
specifica il numero di righe nella matrice e ncol
specifica il numero di colonne. Per convenzione, la matrice è riempita per colonna. Il comportamento predefinito può essere modificato con il parametro byrow
come mostrato di seguito:
matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
Le matrici non devono essere numeriche: qualsiasi vettore può essere trasformato in una matrice. Per esempio:
matrix(data = c(TRUE, TRUE, TRUE, FALSE, FALSE, FALSE), nrow = 3, ncol = 2)
## [,1] [,2]
## [1,] TRUE FALSE
## [2,] TRUE FALSE
## [3,] TRUE FALSE
matrix(data = c("a", "b", "c", "d", "e", "f"), nrow = 3, ncol = 2)
## [,1] [,2]
## [1,] "a" "d"
## [2,] "b" "e"
## [3,] "c" "f"
Come i vettori le matrici possono essere memorizzate come variabili e quindi richiamate più tardi. Le righe e le colonne di una matrice possono avere nomi. Puoi guardarli usando le funzioni rownames
e colnames
. Come mostrato di seguito, le righe e le colonne inizialmente non hanno nomi, che è indicato da NULL
. Tuttavia, è possibile assegnare valori a loro.
mat1 <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)
rownames(mat1)
## NULL
colnames(mat1)
## NULL
rownames(mat1) <- c("Row 1", "Row 2")
colnames(mat1) <- c("Col 1", "Col 2", "Col 3")
mat1
## Col 1 Col 2 Col 3
## Row 1 1 2 3
## Row 2 4 5 6
È importante notare che, analogamente ai vettori, le matrici possono avere solo un tipo di dati. Se si tenta di specificare una matrice con più tipi di dati, i dati verranno convertiti nella classe di dati dell'ordine superiore.
La class
, is
, e as
funzioni può essere usata per controllare e coercervere le strutture di dati nello stesso modo in cui sono state usate sui vettori in classe 1.
class(mat1)
## [1] "matrix"
is.matrix(mat1)
## [1] TRUE
as.vector(mat1)
## [1] 1 4 2 5 3 6