[1] 5
[1] 10
Le funzioni sono un argomento relativamente complesso ed avanzato. Lo tratteremo più avanti. Siccome le usiamo fin da subito (es., mean) è importante avere chiari alcuni aspetti:
Possiamo pensare alle funzioni in R in modo analogo alle classiche funzioni matematiche. Dati dei valori in input, le funzioni eseguono dei specifici calcoli e restituiscono in output il risultato ottenuto.
Abbiamo già visto che ogni cosa in R è un oggetto. Anche le funzioni seppur molto diverse da altri elementi sono creati e trattati in R come oggetti. In questo esempio, creiamo una funzione che ha come input x, e che svolge l’operazione di sommare ad x il valore 3.
L’output dipenderà dal valore di x.
Possiamo crearle, eliminarle o sovrascriverle come un normale oggetto. Vedremo più avanti come crearle ma tenete in considerazione che tutte le funzioni che usiamo sono create come oggetti e salvati nell’ambiente.
Gli argomenti delle funzioni sono quelli che da utenti dobbiamo conoscere ed impostare nel modo corretto per fare in modo che la funzioni faccia quello per cui è stata pensata. Nell’esempio precedente l’unico argomento era x. Vediamo invece l’help
della funzione mean().
Per impostare questi argomenti ci sono 2 regole:
x = vettore
, na.rm = TRUE
, etc.argomento = valore
ma devo rispettare l’ordine con cui è stata scritta la funzioneIn questo caso proviamo ad usare la funzione mean()
:
#creo un vettore campionando 100 elementi da una distribuzione normale con media 10 e sd 5
myvec = rnorm(n = 100, mean = 10, sd = 5)
mean(x = myvec) # x definito, trim non definito, na.rm non definito
[1] 10.69628
[1] 10.58379
[1] 10.69628
Error in mean.default(x = myvec, TRUE): 'trim' must be numeric of length one
In R è possibile installare e caricare pacchetti aggiuntivi che non fanno altro che rendere disponibili librerie di funzioni create da altri utenti. Per utilizzare un pacchetto:
Installare il pacchetto con install.packages("nomepacchetto")
Caricare il pacchetto con library(nomepacchetto)
Accedere ad una funzione senza caricare il pachetto nomepacchetto::nomefunzione()
. Utile se serve solo una funzione o ci sono conflitti)
In R gli errori sono:
Ci sono diversi livelli di allerta quando scriviamo codice:
messaggi
: la funzione ci restituisce qualcosa che è utile sapere, ma tutto liscio
warnings
: la funzione ci informa di qualcosa di potenzialmente problematico, ma (circa) tutto liscio
error
: la funzione non solo ci informa di un errore ma le operazioni richieste non sono state eseguite
Ogni funzione ha una pagina di documentazione accessibile con ?nomefunzione
, ??nomefunzione
oppure help(nomefunzione)
Possiamo cercare anche la documentazione del pacchetto
Possiamo cercare su internet il nome della funzione o l’eventuale messaggio che riceviamo
Stack overflow è un forum di discussione riguardo qualsiasi cosa coinvolga codice (statistica, programmazione, etc.). E’ pieno di errori comuni, How to do … e di risposte/soluzioni estremamente utili. Nel 90% dei casi il problema che avete è comune ed è già presente una soluzione.
Attentenzione
Ponete bene la domanda
Sinceratevi di aver capito la risposta
Controllate!