R - Matrici
Le matrici sono gli oggetti R in cui gli elementi sono disposti in un layout rettangolare bidimensionale. Contengono elementi degli stessi tipi atomici. Sebbene possiamo creare una matrice contenente solo caratteri o solo valori logici, non sono di grande utilità. Utilizziamo matrici contenenti elementi numerici da utilizzare nei calcoli matematici.
Una matrice viene creata utilizzando il matrix() funzione.
Sintassi
La sintassi di base per creare una matrice in R è:
matrix(data, nrow, ncol, byrow, dimnames)
Di seguito la descrizione dei parametri utilizzati:
data è il vettore di input che diventa gli elementi dati della matrice.
nrow è il numero di righe da creare.
ncol è il numero di colonne da creare.
byrowè un indizio logico. Se TRUE, gli elementi del vettore di input sono disposti per riga.
dimname sono i nomi assegnati alle righe e alle colonne.
Esempio
Crea una matrice prendendo come input un vettore di numeri.
# Elements are arranged sequentially by row.
M <- matrix(c(3:14), nrow = 4, byrow = TRUE)
print(M)
# Elements are arranged sequentially by column.
N <- matrix(c(3:14), nrow = 4, byrow = FALSE)
print(N)
# Define the column and row names.
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")
P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
print(P)
Quando eseguiamo il codice sopra, produce il seguente risultato:
[,1] [,2] [,3]
[1,] 3 4 5
[2,] 6 7 8
[3,] 9 10 11
[4,] 12 13 14
[,1] [,2] [,3]
[1,] 3 7 11
[2,] 4 8 12
[3,] 5 9 13
[4,] 6 10 14
col1 col2 col3
row1 3 4 5
row2 6 7 8
row3 9 10 11
row4 12 13 14
Accesso agli elementi di una matrice
È possibile accedere agli elementi di una matrice utilizzando l'indice di colonna e riga dell'elemento. Consideriamo la matrice P sopra per trovare gli elementi specifici di seguito.
# Define the column and row names.
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")
# Create the matrix.
P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
# Access the element at 3rd column and 1st row.
print(P[1,3])
# Access the element at 2nd column and 4th row.
print(P[4,2])
# Access only the 2nd row.
print(P[2,])
# Access only the 3rd column.
print(P[,3])
Quando eseguiamo il codice sopra, produce il seguente risultato:
[1] 5
[1] 13
col1 col2 col3
6 7 8
row1 row2 row3 row4
5 8 11 14
Calcoli di matrici
Varie operazioni matematiche vengono eseguite sulle matrici utilizzando gli operatori R. Anche il risultato dell'operazione è una matrice.
Le dimensioni (numero di righe e colonne) devono essere le stesse per le matrici coinvolte nell'operazione.
Addizione e sottrazione di matrici
# Create two 2x3 matrices.
matrix1 <- matrix(c(3, 9, -1, 4, 2, 6), nrow = 2)
print(matrix1)
matrix2 <- matrix(c(5, 2, 0, 9, 3, 4), nrow = 2)
print(matrix2)
# Add the matrices.
result <- matrix1 + matrix2
cat("Result of addition","\n")
print(result)
# Subtract the matrices
result <- matrix1 - matrix2
cat("Result of subtraction","\n")
print(result)
Quando eseguiamo il codice sopra, produce il seguente risultato:
[,1] [,2] [,3]
[1,] 3 -1 2
[2,] 9 4 6
[,1] [,2] [,3]
[1,] 5 0 3
[2,] 2 9 4
Result of addition
[,1] [,2] [,3]
[1,] 8 -1 5
[2,] 11 13 10
Result of subtraction
[,1] [,2] [,3]
[1,] -2 -1 -1
[2,] 7 -5 2
Moltiplicazione e divisione di matrici
# Create two 2x3 matrices.
matrix1 <- matrix(c(3, 9, -1, 4, 2, 6), nrow = 2)
print(matrix1)
matrix2 <- matrix(c(5, 2, 0, 9, 3, 4), nrow = 2)
print(matrix2)
# Multiply the matrices.
result <- matrix1 * matrix2
cat("Result of multiplication","\n")
print(result)
# Divide the matrices
result <- matrix1 / matrix2
cat("Result of division","\n")
print(result)
Quando eseguiamo il codice sopra, produce il seguente risultato:
[,1] [,2] [,3]
[1,] 3 -1 2
[2,] 9 4 6
[,1] [,2] [,3]
[1,] 5 0 3
[2,] 2 9 4
Result of multiplication
[,1] [,2] [,3]
[1,] 15 0 6
[2,] 18 36 24
Result of division
[,1] [,2] [,3]
[1,] 0.6 -Inf 0.6666667
[2,] 4.5 0.4444444 1.5000000