Gli array in R: come funzionano
Come in quasi tutti gli altri linguaggi di programmazione, anche per la programmazione in R gli sviluppatori possono memorizzare elementi dello stesso tipo di dati nella struttura dati array e sfruttare alcune importanti funzionalità.
A cosa servono gli array in R?
Analogamente alle stringhe in R, gli array, detti anche vettori o matrici, sono un tipo di struttura dati standard che risulta utile in particolare quando occorre organizzare i dati e accedervi. Grazie all’indicizzazione, i programmatori e le programmatrici possono accedere in modo efficiente ai dati memorizzati nell’array.
Gli array, inoltre, permettono di eseguire in modo facile ed efficiente operazioni che riguardano l’intero record di dati. Gli array di R con più dimensioni consentono anche rappresentazioni di dati multidimensionali, ad esempio nel caso di matrici o tensori.
Come creare gli array in R
I programmatori e le programmatrici possono creare array R di diverse dimensioni, che permettono infatti di realizzare sia semplici vettori sia complesse strutture multidimensionali. Spesso si utilizzano array bidimensionali che puoi immaginare come una sorta di tabella o matrice.
Un semplice array bidimensionale contenente i numeri da 1 a 6 può essere creato nel modo seguente utilizzando la funzione array()
:
esempioarray <- array(1:6, dim = c(2, 3))
RIn questo caso, assegniamo alla funzione array()
due parametri: prima di tutto indichiamo con 1:6
il range di valori presenti nell’array R. Il secondo parametro definisce le dimensioni dell’array: in questo caso, creiamo un array di 2x3.
Ricorda che all’interno di un array in R è possibile memorizzare solo elementi dello stesso tipo di dati. Se desideri memorizzare 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 convertire in array i vettori o le matrici già presenti nel tuo codice. Per farlo, è sufficiente richiamare la funzione con l’elemento che desideri inserire in un array e indicare quindi le dimensioni desiderate:
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))
RIndicizzazione: come accedere agli elementi dell’array
Per accedere agli elementi di un array è possibile utilizzare l’indicizzazione. A tal fine occorre mettere fra parentesi quadre gli indici dell’elemento desiderato, come avviene in molti altri linguaggi di programmazione. Oltre ai singoli elementi, con gli array multidimensionali è 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, ]
RSe utilizzi già altri linguaggi di programmazione e non stai imparando a programmare con R, probabilmente l’indicizzazione in R ti sembrerà un po’ strana: a differenza di molti altri linguaggi, non parte da 0, ma inizia da 1, come si fa istintivamente quando si conta.
Calcolare con gli array
Per mezzo degli array è possibile utilizzare diverse funzioni matematiche sull’intero record di dati. Ad esempio, è possibile sommare due array, in modo analogo a un’addizione tra due matrici. Al riguardo occorre assicurarsi che gli array abbiano le stesse dimensioni o la stessa lunghezza; puoi recuperare queste informazioni 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
ROltre ai calcoli di base, disponibili sotto forma di operatori R, il linguaggio 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)
RUn ulteriore vantaggio è la possibilità di utilizzare diverse funzioni per mezzo della funzione per array R apply(array, MARGIN, FUN)
su una dimensione a tua scelta. La funzione accetta diversi parametri:
- array: l’array in questione
- MARGIN: la dimensione per la quale si deve applicare la funzione, dove 1 sta per le righe e 2 per le colonne
- FUN: funzione vettoriale che restituisce 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)
RIl risultato del codice di programma precedente restituisce tre valori che indicano rispettivamente il valore medio della colonna: 1.5 3.5 5.5.
Utilizzi R per lavorare al tuo progetto web? Con IONOS puoi noleggiare uno spazio web su misura per le tue esigenze.