Abbiamo
già visto alcuni esempi di dati riportati
direttamente (cablati) nel codice R, dove comunque possono
essere modificati a piacere [1, 2]. Una modalità molto elementare ma utile
nella pratica quando si debbano inserire pochi dati, come in un test
chi-quadrato, in un grafico a torta o quant'altro.
Vediamo
ora due nuovi esempi un po' particolari, in quanto prevedono l'inserimento dei dati in modo interattivo, cioè da parte di
un operatore che deve inserire manualmente i dati nella
Console di R su richiesta, nel punto
previsto dallo script, perché l'esecuzione dello script possa
proseguire. Si tratta di una modalità di inserimento dei dati che,
mentre consente di familiarizzare con qualche aspetto un po' più tecnico di R, può risultare utile in casi particolari.
Copiate
lo script
che segue quindi incollatelo nella
Console
di R
e premete
↵ Invio:
#
INSERIMENTO MANUALE DEI DATI [3a]
#
inserimento di un singolo dato
#
#
predispone la funzione inserisci_un_dato() compresa tra { e }
inserisci_un_dato
<- function() {
#
legge il dato inserito nella Console di R
datoinserito
<- readline("Dato da elaborare = ")
#
converte il dato inserito in un numero
datoinserito
<- as.numeric(datoinserito)
#
calcola la radice quadrata del numero inserito e mostra il risultato
print(paste("La
radice quadrata di", datoinserito, "è",
sqrt(datoinserito)), quote=FALSE)
}
#
esegue la funzione inserisci_un_dato() in modalità interattiva attendendo un input da tastiera
if(interactive())
inserisci_un_dato()
Con
le prime quattro righe di codice viene predisposta la funzione inserisci_un_dato,
il cui codice è incluso tra la parentesi graffa {
e la parentesi graffa }. La funzione prevede di acquisire il dato (un solo dato) dalla Console di R con readline(), trasformare quanto immesso in un numero con as.numeric() quindi calcolarne la radice quadrata e mostrare il risultato con la quarta riga di codice.
L'ultima riga di codice con if(interactive()) manda in esecuzione la funzione
inserisci_un_dato()
in modo interattivo, restando in attesa dell'immissione da tastiera
nella
Console di R del
dato.
I commenti inseriti nel codice R sono sufficientemente esplicativi di quanto avviene, mentre la documentazione delle funzioni impiegate può essere visualizzata come al solito digitando help(nomedellafunzione) nella Console di R.
I commenti inseriti nel codice R sono sufficientemente esplicativi di quanto avviene, mentre la documentazione delle funzioni impiegate può essere visualizzata come al solito digitando help(nomedellafunzione) nella Console di R.
Ora
copiate lo script che segue
quindi incollatelo nella Console
di R e premete
↵ Invio:
#
INSERIMENTO MANUALE DEI DATI [3b]
#
inserimento di più dati
#
#
imposta 1 come dato iniziale
datoinserito
<- 1
#
ripete le istruzioni inserite nel loop fino a quando il dato inserito
è diverso da 0 (zero)
while(datoinserito!=0)
{
#
richiede di inserire la temperatura in gradi Celsius
datoinserito
<- readline("Temperatura in gradi Celsius = ")
#
converte il dato inserito in un numero
datoinserito
<- as.numeric(datoinserito)
#
effettua il calcolo e presenta il risultato
print(paste(datoinserito,
"gradi Celsius corrispondono a", ((datoinserito * 1.8) +
32), "gradi Fahrenheit"), quote=FALSE)
}
Mediante
la funzione while() viene
realizzato un loop, il cui codice è incluso tra la parentesi graffa
{ e la parentesi graffa },
che viene reiterato fino a quando il dato inserito risulta diverso da
0 (datoinserito!=0). Quando il dato inserito è 0 il loop viene terminato.
Il codice
prevede che nella Console di R
sia inserito manualmente da tastiera un dato di temperatura
(datoinserito) in gradi Celsius
(°C), per il quale viene calcolata e mostrata la corrispondente
temperatura in gradi Fahrenheit (°F) essendo
°F = (°C ∙ 1.8) + 32
Possono essere inseriti anche valori negativi di temperatura in gradi
Celsius.
Anche in questo caso i commenti inseriti nel codice R sono sufficientemente
esplicativi di quanto avviene mentre di nuovo al bisogno la documentazione delle funzioni impiegate può
essere visualizzata digitando help(nomedellafunzione)
nella Console di R.
Per
entrambi gli script ci si può inoltre divertire a immaginare i
controlli che potrebbero essere eseguiti sul dato inserito, e per
il secondo script anche a trovare qualcosa di meglio dell'uscita
dal loop piuttosto grezza realizzata inserendo 0 come dato, ma questo
va al di la degli scopi del post.
In
definitiva i due script, pur nella loro semplicità, forniscono come
sottoprodotto utile due esempi didattici:
→ di
come con R sia possibile realizzare una funzione,
cioè un blocco di codice che può essere eseguito semplicemente
richiamando nomedellafunzione(eventualiargomenti);
→ di
come con R sia possibile realizzare un loop
(ciclo, iterazione), cioè la ripetizione ciclica di una sequenza di
operazioni finché risulta vera la condizione di controllo
prefissata, una struttura di controllo ampiamente utilizzata in qualsiasi linguaggio di programmazione, oltre che all'interno delle funzioni di R.
----------
[1] Vedere il post Inserimento manuale dei dati [1] per l'assemblamento dei vettori in matrici.
[2] Vedere il post Inserimento manuale dei dati [2] per l'assemblamento di vettori in tabelle.
Nota: parliamo di array o vettore nel caso di dati numerici monodimensionali, disposti su una sola riga,
8 | 6 | 11 | 7 |
di matrice nel caso di dati numerici disposti su più righe e più colonne
8 | 9 | 15 | 14 |
6 | 7 | 18 | 12 |
11 | 8 | 17 | 13 |
7 | 4 | 19 | 17 |
e 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 |
Di fatto 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