lunedì 19 novembre 2018

Eseguire uno script

In R uno script è costituito semplicemente da una serie di righe di testo: scritte in linguaggio R queste righe di testo, riportate nella Console di R, sono eseguite in sequenza dall'Interprete di comandi di R allo scopo di elaborare dei dati o effettuare delle rappresentazioni grafiche.

Nei post di questo blog il testo degli script è riportato con queste convenzioni:

→ in colore nero preceduti dal simbolo # sono riportati i promemoria e i commenti che non sono eseguiti da R;
in colore rosso e in grassetto è riportato il codice R che viene eseguito e commentato;
→ in colore nero e in grassetto è riportato il codice R che viene eseguito ma che è già stato illustrato o riveste scarso interesse nell'esempio specifico;

mentre i risultati che compaiono nella Console di R in seguito all'esecuzione del codice sono riportati con queste convenzioni;

in colore rosso sono riportati sia il codice R inserito sia gli eventuali promemoria e commenti;
in colore blu sono riportati risultati dell'elaborazione da parte di R

Nel caso di uno script riportato in un post per eseguire lo script è sufficiente copiarlo quindi incollarlo nella Console di R in uno di questi modi.

Primo modo (tradizionale):
selezionate il testo dello script dal primo all'ultimo # (inclusi);
→ con il tasto destro del mouse aprite il menù contestuale e con il tasto sinistro fate click su Copia per copiare;
nella RGui fate click con il tasto sinistro del mouse sul menù Modifica quindi selezionate Incolla e se necessario premete ↵ Invio.


Secondo modo (alternativo):
→ selezionate il testo dello script dal primo all'ultimo # (inclusi);
→ con il tasto destro del mouse aprite il menù contestuale e con il tasto sinistro fate click su Copia per copiare;
nella Console di R fate click con il tasto destro del mouse per aprire il menù contestuale e con il tasto sinistro fate click su Incolla e se necessario premete ↵ Invio.

Terzo modo (rapido e consigliato):
selezionate il testo dello script dal primo all'ultimo # (inclusi) e fate ctrl-C (tenendo premuto il tasto ctrl premete il tasto con la lettera C) per copiare;
fate click con il tasto sinistro del mouse sulla finestra della Console di R quindi fate ctrl-V (tenendo premuto il tasto ctrl premete il tasto con la lettera V) per incollare e se necessario premete ↵ Invio.

Nota: se lo script è molto lungo per selezionare e copiare il testo può essere comodo:
→ fare click con il tasto sinistro del mouse a sinistra del primo carattere della prima riga dello script (il più delle volte un #) quindi rilasciare il tasto;
→ ruotando la rotella del mouse portarsi alla fine dello script;
→ tenendo premuto il tasto ↑ Shift (↑ Maiuscolo) fare click con il tasto sinistro del mouse a destra dell'ultimo carattere dell'ultima riga dello script;
→ con il tasto destro del mouse aprire il menù contestuale e con il tasto sinistro fare click su Copia per copiare.

Nel caso di uno script salvato sul PC [1]:
→ se l'avete salvato in un file di testo .txt dovete aprire il file con il vostro editor di testo preferito, copiare lo script con gli strumenti che questo vi fornisce, quindi incollarlo con una delle modalità riportate sopra nella Console di R se necessario premete ↵ Invio;
→ se l'avete salvato con R in un file .R dovete dal menù File della RGui selezionare Apri script... per aprirlo nell'Editor di R 


quindi dal menù Modifica selezionare Esegui tutto per eseguire lo script.


Ora copiate e incollate questo script nella Console di R seguendo una delle indicazioni riportate e se necessario premete ↵ Invio:

# CALCOLA LA MEDIA E LA DEVIAZIONE STANDARD DEI VALORI 8, 6, 11, 7
#
# viene generato l'oggetto mydata che contiene i valori numerici 8,6,11,7
mydata <- c(8,6,11,7)
# viene mostrato il contenuto dell'oggetto mydata
mydata
# viene calcolata la media dei valori numerici contenuti nell'oggetto mydata
mean(mydata)
# viene calcolate la deviazione standard dei valori numerici contenuti nell'oggetto mydata
sd(mydata)
#

Le righe di codice vengono eseguite una ad una in sequenza e questo è quanto compare nella Console di R:

> # CALCOLA LA MEDIA E LA DEVIAZIONE STANDARD DEI VALORI 8, 6, 11, 7
> #
> # viene generato l'oggetto mydata che contiene i valori numerici 8,6,11,7
> mydata <- c(8,6,11,7)
> # viene mostrato il contenuto dell'oggetto mydata
> mydata
[1] 8 6 11 7
> # calcola la media dei valori numerici contenuti nell'oggetto mydata
> mean(mydata)
[1] 8
> # calcola la deviazione standard dei valori numerici contenuti nell'oggetto mydata
> sd(mydata)
[1] 2.160247
> #

Dal punto di vista della statistica niente di più banale. Ma lo script ci offre l'opportunità per alcuni chiarimenti importanti sugli elementi del linguaggio R, utili a chi affronta per la prima volta l'argomento:
mydata è un oggetto;
<- è l'operatore di assegnamento;
c(), mean() e sd() sono funzioni;
→ l'operatore di assegnamento <- assegna all'oggetto mydata il contenuto dell'array (o vettore) generato dalla funzione c();
→ l'oggetto mydata è l'argomento delle funzioni mean() e sd();
→ la funzione mean() utilizza come argomento l'oggetto mydata che contiene i valori 8,6,11,7 per calcolarne la media, che risulta uguale a 8;
→ la funzione sd() utilizza come argomento l'oggetto mydata che contiene i valori 8,6,11,7 per calcolarne la deviazione standard, che risulta uguale a 2.160247

Il nome mydata attribuito all'oggetto che contiene i numeri 8,6,11,7 è arbitrario, possiamo chiamarlo in qualsiasi altro modo purché sia un identificativo univoco dell'oggetto. Da notare che R riconosce le lettere maiuscole per cui mydata è un oggetto diverso da Mydata.

Come vedete nello script, digitando nella Console di R il nome di un oggetto come ad esempio

mydata

ne viene mostrato il contenuto

> mydata
[1] 8 6 11 7

mentre con la funzione str() come  ad esempio con

str(mydata)

ne viene mostrato la struttura

> str(mydata)
 num [1:4] 8 6 11 7

In questo caso la struttura di mydata è semplice, si tratta di un oggetto che contiene un array (vettore) numerico (num) che include quattro valori ([1:4]) successivamente riportati (8 6 11 7), ma la funzione str() diventa particolarmente utile quando si salvano i molti risultati forniti da una funzione complessa in un oggetto dal quale si vuole estrarre qualche risultato specifico per una successiva elaborazione.

La funzione c() combina gli elementi numerici (8,6,11,7inseriti come argomento in una sequenza di celle ciascuna della quali contiene un dato. In informatica si parla di array o vettore nel caso di dati monodimensionali disposti su una sola riga 

8
6
11
7

si parla di matrice nel caso di dati numerici disposti su più righe e più colonne [2]

8
9
15
14
6
7
18
12
11
8
17
13
7
4
19
17

e si parla di tabella nei casi in cui il contenuto, disposto su più righe e più colonne, è rappresentato oltre che da dati numerici, anche da testo e/o operatori logici

M
7
9
VERO
F
3
12
VERO
F
5
10
FALSO

Se nella Console di R digitate help(c) si apre la finestra di aiuto con la documentazione della funzione c().

All'interno della parentesi graffa {} compare il nome del pacchetto nel quale è inclusa la funzione, nel caso specifico la funzione c() è inclusa nel pacchetto base di funzioni che viene installato con il programma R.

c {base} R Documentation
Combine Values into a Vector or List
Description
This is a generic function which combines its arguments.
The default method combines its arguments to form a vector ...

Più in generale per aprire la finestra di aiuto con la documentazione di una qualsiasi funzione è sufficiente digitare help(nomedellafunzione) nella Console di R e pertanto:
→ per la documentazione della funzione mean() digitate help(mean) nella Console di R
→ per la documentazione della funzione sd() digitate help(sd) nella Console di R.

Nota bene: in R il separatore delle cifre decimali è il punto (.) e come già riportato altrove questa convenzione per ragioni di omogeneità viene adottata non solo negli script ma anche nei dati e nei testi dei post.


----------

[1] Vedere il post Salvare uno script.

[2] I vettori sono matrici aventi una sola riga o una sola colonna. Una matrice con una sola riga e più colonne è detta matrice riga o vettore riga, mentre una matrice con una sola colonna e più righe è detta matrice colonna o vettore colonna.

Nessun commento:

Posta un commento