Oggetti ed Assegnamento in Linguaggio R

Abbiamo visto che in R è possibile effettuare calcoli matematici direttamente nel prompt dei comandi.

In questa lezione vedremo come memorizzare i risultati delle operazioni in R in oggetti e come richiamarli.

Introdurremo anche il concetto di area di lavoro o workspace e vedremo come cancellare gli oggetti dall'ambiente di lavoro.

Oggetti in R

Nella lezione precedente abbiamo usato il sistema R per effettuare calcoli matematici con espressioni più o meno complesse. Risulta ovvio che i risultati di questi calcoli possono essere utilizzati in seguito per altri scopi. Per fare ciò, è necessario memorizzare questi risultati in oggetti.

Un oggetto è, in poche parole, un contenitore di dati. In R, un oggetto può essere di diversi tipi, come numeri, vettori, matrici, data frame, liste, funzioni, ecc. Ogni oggetto ha un nome e un valore. Il nome di un oggetto è un'etichetta che lo identifica all'interno dell'ambiente R, mentre il valore è il contenuto dell'oggetto.

In altri linguaggi di programmazione, quello che qui abbiamo descritto come oggetto è chiamato variabile. Dal momento che R viene usato principalmente per applicazioni statistiche è opportuno usare il termine oggetto per evitare confusione con il termine variabile che in statistica ha un significato ben preciso.

Definizione

Oggetti in R

In R un oggetto è un contenitore di dati a cui è assegnato un nome e che può memorizzare un risultato.

Tale concetto è identico a quello di variabile in altri linguaggi di programmazione, ma per evitare confusione con il termine variabile usato in statistica, in R si preferisce usare il termine oggetto.

Assegnamento

Per memorizzare il risultato di un'operazione in R si può usare l'operatore di assegnamento <-.

Ad esempio, per memorizzare il risultato di un'operazione di somma in un oggetto chiamato somma si può scrivere:

> somma <- 5 + 3

In questo modo abbiamo creato un oggetto di nome somma che al proprio interno contiene il risultato dell'operazione 5 + 3.

A questo punto possiamo richiamare questo oggetto in qualsiasi momento, ad esempio per stamparne il valore:

> somma
[1] 8

Ma possiamo anche utilizzarlo in altre espressioni:

> somma * 2
[1] 16

Nell'esempio di sopra, R non fa altro che sostituire al posto dell'etichetta somma il valore che contiene, ovvero 8. L'espressione risultante sarà, quindi, 8 * 2.

Un oggetto può essere anche modificato in un momento successivo. Ad esempio, potremmo voler modificare il valore di somma in modo che contenga il risultato di un'altra operazione:

> somma <- somma + 2
> somma
[1] 10

In questo caso, il valore di somma è stato modificato in modo che contenga il risultato dell'operazione 8 + 2.

L'ambiente R mette a disposizione anche una sintassi alternativa per l'assegnamento, che consiste nell'usare l'operatore =. Questa sintassi è meno usata rispetto a <-, ma è comunque valida:

> somma = 5 + 3
> somma
[1] 8

In generale si preferisce usare <- per l'assegnamento, in quanto rende più chiaro il flusso di esecuzione del codice. Il simbolo = è usato principalmente per specificare gli argomenti di una funzione come vedremo più avanti.

Definizione

Assegnamento

L'assegnamento in R si effettua tramite l'operatore <- o =. Questo operatore permette di memorizzare il risultato di un'espressione in un oggetto.

nome_oggetto <- espressione

Workspace

Quando si avvia una sessione R viene creato un ambiente di lavoro, chiamato workspace, in cui vengono memorizzati tutti gli oggetti creati durante la sessione stessa. Questo ambiente di lavoro è temporaneo e viene distrutto quando si chiude la sessione R.

Per visualizzare tutti gli oggetti presenti nell'ambiente di lavoro si può usare la funzione ls().

Ad esempio, supponiamo di avviare una sessione R e di inserire i comandi che seguono:

> somma <- 5 + 3
> prodotto <- 5 * 3
> somma
[1] 8
> prodotto
[1] 15

Nella sessione di sopra abbiamo creato due oggetti chiamati somma e prodotto. Se, a questo punto invochiamo la funzione ls() otteniamo:

> ls()
[1] "prodotto" "somma"

Nel momento in cui chiudiamo la sessione R, tutti gli oggetti presenti nell'ambiente di lavoro vengono distrutti. Se si vuole mantenere un oggetto per sessioni successive è necessario salvarlo in un file esterno, come vedremo più avanti.

Bisogna tener presente che se non esiste un oggetto con il nome specificato all'interno dell'area di lavoro, R restituirà un messaggio di errore. Ad esempio:

> x
Error: object 'x' not found

Possiamo ripulire l'area di lavoro, ossia cancellare tutti gli oggetti che abbiamo creato finora, usando la funzione rm() invocata in questo modo:

> rm(list = ls())
> ls()
character(0)

In questo modo abbiamo cancellato tutti gli oggetti presenti nell'ambiente di lavoro e siamo ritornati ad uno stato iniziale.

Definizione

Workspace

Il workspace è l'ambiente di lavoro di R in cui vengono memorizzati tutti gli oggetti creati durante una sessione. Questo ambiente è temporaneo e viene distrutto quando si chiude la sessione R.

Per elencare tutti gli oggetti presenti nell'ambiente di lavoro si può usare la funzione ls():

ls()

Per cancellare tutti gli oggetti presenti nell'ambiente di lavoro si può usare la funzione rm():

rm(list = ls())

In Sintesi

Ricapitolando, in questa lezione abbiamo visto che:

  • In R è possibile memorizzare il risultato di un'espressione in un oggetto.
  • Un oggetto è un contenitore di dati a cui è assegnato un nome.
  • L'assegnamento in R si effettua tramite l'operatore <- o =.
  • L'ambiente di lavoro di R, chiamato workspace, è temporaneo e viene distrutto quando si chiude la sessione R.
  • Per elencare tutti gli oggetti presenti nell'ambiente di lavoro si può usare la funzione ls().
  • Per cancellare tutti gli oggetti presenti nell'ambiente di lavoro si può usare la funzione rm().

Nella prossima lezione introdurremo una prima fondamentale struttura dati che il linguaggio R mette a disposizione: i vettori.