Come in quasi tutti gli altri linguaggi di pro­gram­ma­zio­ne, anche per la pro­gram­ma­zio­ne in R gli svi­lup­pa­to­ri possono me­mo­riz­za­re elementi dello stesso tipo di dati nella struttura dati array e sfruttare alcune im­por­tan­ti fun­zio­na­li­tà.

A cosa servono gli array in R?

Ana­lo­ga­men­te alle stringhe in R, gli array, detti anche vettori o matrici, sono un tipo di struttura dati standard che risulta utile in par­ti­co­la­re quando occorre or­ga­niz­za­re i dati e accedervi. Grazie all’in­di­ciz­za­zio­ne, i pro­gram­ma­to­ri e le pro­gram­ma­tri­ci possono accedere in modo ef­fi­cien­te ai dati me­mo­riz­za­ti nell’array.

Gli array, inoltre, per­met­to­no di eseguire in modo facile ed ef­fi­cien­te ope­ra­zio­ni che ri­guar­da­no l’intero record di dati. Gli array di R con più di­men­sio­ni con­sen­to­no anche rap­pre­sen­ta­zio­ni di dati mul­ti­di­men­sio­na­li, ad esempio nel caso di matrici o tensori.

Come creare gli array in R

I pro­gram­ma­to­ri e le pro­gram­ma­tri­ci possono creare array R di diverse di­men­sio­ni, che per­met­to­no infatti di rea­liz­za­re sia semplici vettori sia complesse strutture mul­ti­di­men­sio­na­li. Spesso si uti­liz­za­no array bi­di­men­sio­na­li che puoi im­ma­gi­na­re come una sorta di tabella o matrice.

Un semplice array bi­di­men­sio­na­le con­te­nen­te i numeri da 1 a 6 può essere creato nel modo seguente uti­liz­zan­do la funzione array():

esempioarray <- array(1:6, dim = c(2, 3))
R

In questo caso, as­se­gnia­mo alla funzione array() due parametri: prima di tutto in­di­chia­mo con 1:6 il range di valori presenti nell’array R. Il secondo parametro definisce le di­men­sio­ni dell’array: in questo caso, creiamo un array di 2x3.

N.B.

Ricorda che all’interno di un array in R è possibile me­mo­riz­za­re solo elementi dello stesso tipo di dati. Se desideri me­mo­riz­za­re dati di tipi diversi all’interno di una struttura dati, vale la pena dare un’occhiata al tipo di dati R list.

Con array() è possibile creare nuovi array, ma anche con­ver­ti­re in array i vettori o le matrici già presenti nel tuo codice. Per farlo, è suf­fi­cien­te ri­chia­ma­re la funzione con l’elemento che desideri inserire in un array e indicare quindi le di­men­sio­ni de­si­de­ra­te:

# Conversione di vettori in array
vector <- 1:9
vector_come_array <- array(vector, dim = c(3,3))
# Conversione di matrici in array
matrix <- matrix(1:9, nrow = 3, ncol = 3)
matrix_come_array <- array(matrix, dim = dim(matrix))
R

In­di­ciz­za­zio­ne: come accedere agli elementi dell’array

Per accedere agli elementi di un array è possibile uti­liz­za­re l’in­di­ciz­za­zio­ne. A tal fine occorre mettere fra parentesi quadre gli indici dell’elemento de­si­de­ra­to, come avviene in molti altri linguaggi di pro­gram­ma­zio­ne. Oltre ai singoli elementi, con gli array mul­ti­di­men­sio­na­li è anche possibile ottenere intere righe o colonne come output:

esempioarray <- array(1:6, dim = c(2, 3))
# Accesso all’elemento nella prima riga e nella seconda colonna
elemento <- esempioarray[1, 2]
# Accesso alla prima riga
riga <- esempioarray[, 1]
# Accesso alla prima colonna
colonna <- esempioarray[1, ]
R
N.B.

Se utilizzi già altri linguaggi di pro­gram­ma­zio­ne e non stai imparando a pro­gram­ma­re con R, pro­ba­bil­men­te l’in­di­ciz­za­zio­ne in R ti sembrerà un po’ strana: a dif­fe­ren­za di molti altri linguaggi, non parte da 0, ma inizia da 1, come si fa istin­ti­va­men­te quando si conta.

Calcolare con gli array

Per mezzo degli array è possibile uti­liz­za­re diverse funzioni ma­te­ma­ti­che sull’intero record di dati. Ad esempio, è possibile sommare due array, in modo analogo a un’addizione tra due matrici. Al riguardo occorre as­si­cu­rar­si che gli array abbiano le stesse di­men­sio­ni o la stessa lunghezza; puoi re­cu­pe­ra­re queste in­for­ma­zio­ni per mezzo della funzione length degli array R.

array1 <- array(1:4, dim = c(2,2))
array2 <- array(5:8, dim = c(2,2))
risultato <- array1 + array2
R

Oltre ai calcoli di base, di­spo­ni­bi­li sotto forma di operatori R, il lin­guag­gio definisce diverse utili funzioni per i calcoli con gli array in R. Ad esempio, è possibile calcolare la media di tutti gli elementi di un array con il comando R mean():

media <- mean(array1)
R

Un ulteriore vantaggio è la pos­si­bi­li­tà di uti­liz­za­re diverse funzioni per mezzo della funzione per array R apply(array, MARGIN, FUN) su una di­men­sio­ne a tua scelta. La funzione accetta diversi parametri:

  • array: l’array in questione
  • MARGIN: la di­men­sio­ne per la quale si deve applicare la funzione, dove 1 sta per le righe e 2 per le colonne
  • FUN: funzione vet­to­ria­le che re­sti­tui­sce un risultato scalare

Un esempio di utilizzo di apply() potrebbe essere il seguente:

# Creazione dell’array
testarray <- array(1:6, dim = c(2,3))
# Applicazione di apply()
media_colonne <- apply(array, MARGIN = 2, FUN = mean)
# Emissione dei risultati
print(media_colonne)
R

Il risultato del codice di programma pre­ce­den­te re­sti­tui­sce tre valori che indicano ri­spet­ti­va­men­te il valore medio della colonna: 1.5 3.5 5.5.

Consiglio

Utilizzi R per lavorare al tuo progetto web? Con IONOS puoi no­leg­gia­re uno spazio web su misura per le tue esigenze.

Vai al menu prin­ci­pa­le