# Gli array in R: come funzionano

Come in quasi tutti gli altri linguaggi di programmazione, anche per la [programmazione in R](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/linguaggio-di-programmazione-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](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/stringhe-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()`:

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

In 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.

N.B. 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:

```R
# 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))
```

## Indicizzazione: 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:

```R
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, ]
```

N.B. Se utilizzi già altri linguaggi di programmazione e non stai [imparando a programmare con R](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/imparare-a-programmare-iniziare-dalle-basi/), 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.

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

Oltre ai calcoli di base, disponibili sotto forma di [operatori R](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/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](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/comandi-r/) `mean()`:

```R
media <- mean(array1)
```

Un 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:

```R
# 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)
```

Il risultato del codice di programma precedente restituisce tre valori che indicano rispettivamente il valore medio della colonna: *1.5 3.5 5.5*.

Consiglio Utilizzi R per lavorare al tuo progetto web? Con IONOS puoi [noleggiare uno spazio web](https://www.ionos.it/hosting/spazio-web "Spazio web di IONOS") su misura per le tue esigenze.


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/r-gli-array/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/r-gli-array/) for AI/LLM consumption.