Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


Il Laboratorio di Analisi dei Dati con R, dell'Università di Teramo su piattaforma Meet, inizia il 9 aprile 2021 - Iscrizione - email
r:concetti_di_base:funzioni

Funzioni

Le funzioni sono combinazioni di comandi che si applicano ad oggetti.

Le funzioni in R hanno la forma

funzione(x, arg, ...)  

dove:

  • x è l’oggetto (o gli oggetti) a cui la funzione si applica, il base al tipo e alla classe dell’oggetto stesso;
  • solitamente sono presenti uno o più argomenti, che solitamente per-mettono di configurare opzioni.

Per utilizzare una funzione — ad esempio chisq.test (test del chi quadrato) — dobbiamo conoscere i suoi argomenti e le sue opzioni:

args(chisq.test)
function (x, y = NULL, correct = TRUE, p = rep(1/length(x), length(x)), 
    rescale.p = FALSE, simulate.p.value = FALSE, B = 2000) 
NULL

Possiamo ottenere le stesse informazioni con il comando str()

str(chisq.test)
function (x, y = NULL, correct = TRUE, p = rep(1/length(x), length(x)), 
    rescale.p = FALSE, simulate.p.value = FALSE, B = 2000)

Per utilizzare correttamente le funzioni, è importante ricordare che:

  • Il nome e l'ordine degli argomenti dipende dalla funzione (anche se molte funzioni utilizzano gli stessi argomenti);
  • Non sempre è necessario specificare tutti gli argomenti della funzione: alcuni argomenti hanno un proprio valore di default, esplicitato nell'aiuto. Nell'esempio precedente, correct = TRUE, rescale.p = FALSE, simulate.p.value = FALSE, B = 2000 sono valori di default; y=NULL significa che y può non essere indicato; l'unico argomento obbligatorio è x.
  • L'ordine degli argomenti è importante solo quando si voglia (e sia possibile) omettere il loro nome. Nell'esempio precedente, x e y devono essere inseriti per primi; gli altri argomenti hanno un nome, e possono essere inseriti in un ordine qualunque.

L'aiuto sulle funzioni

Inserire gli argomenti delle funzioni

Le parentesi

Le funzioni vengono annidate una nell’altra come in una normale espressione, con la differenza che le parentesi sono sempre tonde.

Consideriamo ad esempio la funzione round() applicata a prop.table()

round( prop.table() )

Allo stesso modo naturalmente possono essere utilizzate, insieme ed “annidate”, più funzioni e comandi. In questo caso, round() si applica a prop.table(), che a sua volta si applica a table():

round(prop.table(table(turismo20$Posizione))*100, 2)
 
           Costa Interno Collina          Montagna 
           79.80            12.12             8.08

Ovvero:

round( prop.table( table () ) )

Nel caso ci si dimenticasse di chiudere una parentesi, il prompt di R si trasformerebbe in un +:

round(prop.table(table(turismo20$Posizione)*100, 2)
+

Inserendo la parentesi mancante, la riga di comando verrebbe eseguita. Se non fosse possibile inserirla — ad esempio perché non occupa l'ultima posizione — utilizzare il tasto ESC, per abbandonare la riga di comando.

Per semplificare l’uso di queste espressioni, si preferisce costruire prima degli oggetti con i risultati di una funzione, e poi applicare le altre funzioni agli oggetti stessi.

Inserire un vettore come argomento

Quando l'argomento di una funzione richiede più di una informazione, si deve utilizzare la notazione vettoriale:

L'opzione dnn del comando table() permette di assegnare delle etichette alle variabili.

dnn="Struttura ricettiva"

Se le variabili sono più di una (in una tabella a doppia entrata), si scriverà invece:

dnn=c("Struttura ricettiva", "Posizione geografica")

E dunque:

table(Tipo.di.struttura, Posizione, dnn=c("Struttura ricettiva", "Posizione geografica"))

Semplificare l'inserimento dell'argomento

Per semplificare la scrittura dell'esempio precedente, si può costruire un oggetto con i parametri desiderati

nomi<-c("Struttura ricettiva", "Posizione geografica")

e poi usarlo come argomento della formula:

table(Tipo.di.struttura, Posizione, dnn=nomi)

Funzioni personalizzate

r/concetti_di_base/funzioni.txt · Ultima modifica: 25/09/2021 09:37 da admin