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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow