Linguaggio R. Le matrici

Cerca nel sito

Altri risultati..

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors




Indice

Matrici

• In R le matrici sono le versioni bidimensionali dei vettori. Una matrice si crea con la funzione


matrix(dati, nrow=R, ncol=C, byrow, dimnames),


Input:
data vettore numerico di dimensione n m
nrow numero n di righe
ncol numero m di colonne
byrow = TRUE / FALSE elementi disposti per riga oppure per colonna
dimnames = etichette di riga e di colonna

Esempio:

> dati <- 1:6
> mat <- matrix(dati, nrow=2, ncol=3)
> mat
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6

Esempio:

dati<- c(1:12)
> dati
[1] 1 2 3 4 5 6 7 8 9 10 11 12
> mat<- matrix(dati,3,4)
> mat
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12

Esempio:

n <- 3
> m <- 3
> x <- 1:9
> riga <- c(“r1”, “r2”, “r3”)
> colonna <- c(“c1”, “c2”, “c3”)
> A <- matrix(data = x, nrow = n, ncol = m, byrow = FALSE, dimnames = list(riga, colonna))
> A

c1 c2 c3
r1 1 4 7
r2 2 5 8
r3 3 6 9

• matrix() riempie la matrice per colonne, il che non è quasi mai il comportamento desiderato. Per forzare il riempimento per righe aggiungiamo l’argomento byrow=T

mat <- matrix(dati, nrow=2, ncol=3, byrow=T)
> mat
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6

Dare un nome alle righe.

rownames()

Esempio:

x <- matrix(data = c(1, 3, 5, 2, 4, 1), nrow = 2, ncol = 3, byrow = TRUE)
> x
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 1
> rownames(x)
NULL
> rownames(x) <- c(“r1”, “r2”)
> x
[,1] [,2] [,3]
r1 1 3 5
r2 2 4 1
> rownames(x)
[1] “r1” “r2”

Dare un nome alle colonne.

colnames()

Esempio:

> x <- matrix(data = c(1, 3, 5, 2, 4, 1), nrow = 2, ncol = 3, byrow = TRUE)
> x
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 1
> colnames(x)
NULL
> colnames(x) <- c(“c1”, “c2”, “c3”)
> x
c1 c2 c3
[1,] 1 3 5
[2,] 2 4 1
> colnames(x)
[1] “c1” “c2” “c3”

Ti potrebbe interessare anche:  Informatica, Sanremo 2019 , Cinema e Altro

 

Un metodo alternativo per creare matrici

Possiamo partire da un vettore di valori e convertirlo in una matrice mediante la funzione dim()

Esempio:

values <- 1:12
> dim(values) <- c(3,4)
> values
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12

Esempio:

n <- 3
> m <- 3
> x <- 1:9
> dim(x) <- c(n, m)
> x

[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9

Esempio:

n <- 1
> m <- 5
> x <- 1:5
> dim(x) <- c(n, m)
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5

 

Accesso agli elementi della matrice

• L’accesso a un elemento di una matrice avviene con la notazione [R,C]
R è la riga, C la colonna
> mat
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> mat[2,3]
[1] 6
> mat[1,2] <- 7
> mat
[,1] [,2] [,3]
[1,] 1 7 3
[2,] 4 5 6

• Si può omettere l’indice della riga o della colonna per “prenderle” tutte:

> mat
[,1] [,2] [,3]
[1,] 1 7 3
[2,] 4 5 6
> mat[1,]
[1] 1 7 3
> mat[,1]
[1] 1 4
> mat[,1] <- c(123, 456)
> mat
[,1] [,2] [,3]
[1,] 123 7 3
[2,] 456 5 6

• Possiamo altresì specificare un vettore con le righe e/o colonne specifiche cui vogliamo accedere:

mat
[,1] [,2] [,3]
[1,] 1 7 3
[2,] 4 5 6
> mat[c(1,2),1]
[1] 1 4
> mat[1,c(2,3)]
[1] 7 3

 Funzione head():  selezione delle prime n righe

Esempio:

linguaggio R. la funzione head()

Funzione tail(): selezione delle ultime n righe

Esempio:

linguaggio R. funzione tail

Funzione vech():  Package: fUtilities . seleziona gli elementi della sezione triangolare inferiore di una matrice simmetrica.

Funzione xpnd() Package: MCMCpack:  crea una matrice simmetrica a partire da un vettore:

funzione xpnd

 

Aggiungere righe o colonne ad una matrice.

Possiamo unire due oggetti (matrici o vettori) affiancandoli per colonna (con la funzione cbind()) o impilandoli per riga (con la funzione rbind())

Ti potrebbe interessare anche:  Linguaggio R. I fattori

matrici unione

• Quando la dimensione delle matrici/vettori non corrisponde, R risolve la cosa troncando le parti in eccesso o ripetendo le parti mancanti, senza dare  messaggi di warning quando la lunghezza è un multiplo (fate attenzione!)

Alcune funzioni per le matrici

length(M): restituisce il numero di elementi della matrice M
dim(m): restituisce un vettore contenente le dimensioni (righe e colonne) della matrice M
typeof(m): restituisce il tipo dei dati immagazzinati nella matrice
mode(m): restituisce il tipo di immagazzinamento dei dati nella matrice

Operazioni matriciali

Data una matrice A
• Si può sommare a tutti i valori una costante z facendo A+z
• Si può moltiplicare tutti i valori per una costante z facendo z*A
• Si può moltiplicare A per un vettore z facendo A %*% z
Date due matrici A e B
• Si può sommare gli elementi di A e B facendo A+B
• Si può moltiplicare gli elementi di A e B facendo A*B
• Il prodotto “riga-per-colonna” di A e B si calcola facendo A %*% B
Esistono funzioni avanzate per risolvere sistemi lineari, calcolare il determinante, autovalori, autovettori…

Funzione det(): calcolo del determinante di una matrice:

Sia A una matrice di dimensione n x n:

Esempio:

funzione det() determinante di una matrice

Esempio:

Funzione as.vector() : trasforma la matrice in vettore di dimensione nm seguendo l’ordine delle colonne

Esempio:

[inbound_button font_size=”20″ color=”#ff8040″ text_color=”#ffffff” icon=”arrow-left” url=”https://matematicaoltre.altervista.org/linguaggio-r-le-operazioni-con-i-vettori.html” width=”” target=”_self”] I vettori[/inbound_button] [inbound_button font_size=”20″ color=”#ff8040″ text_color=”#ffffff” icon=”arrow-right” url=”https://matematicaoltre.altervista.org/linguaggio-r-gli-array.html” width=”” target=”_self”] Gli array[/inbound_button]

 

 

(862)