Accesso agli Elementi di un Array Multidimensionale in R

In questo articolo vedremo come accedere agli elementi di un array multidimensionale in R.

Le regole per accedere agli elementi di un array multidimensionale sono simili a quelle per le matrici. In particolare, possiamo usare la stessa notazione per accedere agli elementi e modificarli.

Accesso ai singoli elementi di un Array Multidimensionale

Per accedere agli elementi di un array multidimensionale in R, possiamo utilizzare la stessa notazione che abbiamo visto per le matrici. In particolare, possiamo utilizzare le parentesi quadre per indicare gli indici del valore che vogliamo estrarre.

Ad esempio, consideriamo l'array multidimensionale a di dimensione 2 \times 3 \times 2:

> a <- array(1:12, dim = c(2, 3, 2))
> a
, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

Supponendo di voler accedere all'elemento 9, che si trova nella prima riga e nella seconda colonna della seconda matrice, possiamo scrivere:

> a[1, 2, 2]
[1] 9
Definizione

Accesso ai singoli elementi di un Array Multidimensionale

Per accedere ad un singolo elemento di un array multidimensionale in R, si usa la notazione seguente:

array[indice1, indice2, ..., indiceN]

dove indice1, indice2, ..., indiceN sono gli indici dell'elemento che si vuole estrarre.

Modifica di un singolo elemento di un Array Multidimensionale

Come per le matrici, anche per gli array si può usare la sintassi vista per l'accesso per modificare un singolo elemento.

Torniamo all'array di esempio di sopra:

> a
, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

Supponiamo di voler modificare l'elemento 9 in 99. Possiamo farlo con la seguente istruzione:

> a[1, 2, 2] <- 99
> a

, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7   99   11
[2,]    8   10   12
Definizione

Modifica di un singolo elemento di un Array Multidimensionale

Per modificare un singolo elemento di un array multidimensionale in R, si usa la stessa notazione dell'accesso, ma si assegna un nuovo valore all'elemento:

array[indice1, indice2, ..., indiceN] <- nuovo_valore

Dove indice1, indice2, ..., indiceN sono gli indici dell'elemento da modificare e nuovo_valore è il valore da assegnare.

Estrazione di elementi multipli

Così come per le matrici, possiamo estrarre più elementi da un array multidimensionale specificando una sequenza di indici per ciascuna dimensione.

Ritornando, sempre, all'array a di esempio:

> a
, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

Possiamo estrarre una singola matrice, ad esempio la seconda, con la seguente istruzione:

> a[,,2]
     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

Oppure possiamo estrarre una singola riga, ad esempio la seconda riga della prima matrice, con la seguente istruzione:

> a[2,,1]
[1] 2 4 6

In generale, quando si omette l'indice di una dimensione, si estraggono tutti gli elementi di quella dimensione.

Possiamo anche specificare una sequenza di indici per una singola dimensione. In questo modo, possiamo estrarre solo gli elementi che corrispondono a quegli indici.

Ad esempio, per estrarre la prima e la terza colonna dalla seconda matrice dell'array a, possiamo scrivere:

> a[, c(1, 3), 2]
     [,1] [,2]
[1,]    7   11
[2,]    8   12
Definizione

Estrazione di elementi multipli da un Array Multidimensionale

Per estrarre più elementi da un array multidimensionale in R, si usa la stessa notazione dell'accesso, specificando una sequenza di indici per ciascuna dimensione.

La sintassi è:

array[indici_dimensione1, indici_dimensione2, ..., indici_dimensioneN]

Dove indici_dimensione1, indici_dimensione2, ..., indici_dimensioneN sono le sequenze di indici per ciascuna dimensione.

Se uno o più indici vengono omessi, vengono estratti tutti gli elementi della dimensione corrispondente.

Indicizzazione Negativa

L'indicizzazione negativa può essere usata per omettere elementi da un array multidimensionale.

Se prendiamo l'array a di esempio, e vogliamo rimuovere la seconda colonna da entrambe le matrici, possiamo scrivere:

> a[,-2,]
, , 1

     [,1] [,2]
[1,]    1    5
[2,]    2    6

, , 2

     [,1] [,2]
[1,]    7   11
[2,]    8   12

In generale, l'indicizzazione negativa segue le stesse regole delle matrici. Per cui, per lo stesso indice, non possiamo combinare indicizzazione positiva e negativa.

In Sintesi

In questo articolo abbiamo visto come accedere agli elementi di un array multidimensionale in R. Abbiamo imparato a:

  • Accedere ad un singolo elemento specificando gli indici;
  • Modificare un singolo elemento specificando gli indici e assegnando un nuovo valore;
  • Estrarre più elementi specificando sequenze di indici per ciascuna dimensione.

Con questa lezione si conclude il capitolo sulle matrici e gli array in R. A partire dal prossimo capitolo inizieremo a studiare i vari tipi di dato, oltre quelli numerici, che il linguaggio R mette a disposizione.