Estratto del documento

Laboratorio

Impostare la working directory

Per impostare la cartella di lavoro si può procedere in due modi:

  • Dall'interfaccia: "Session" → "Set Working Directory" → "Choose Directory" → …
  • Dalla console: setwd('C:/percorso/file')

Per far sì che R "conosca" la working directory si utilizza il comando getwd(). Perché il programma conosca anche i files presenti nella directory si utilizza il comando dir().

Assegnare valori alle variabili

Scalari

a = 1
b = 3
a + b
a = b

Vettori

v = c(6, 1, -7, 12)
length(v)

Matrici

M = matrix(data = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), nrow = 4, ncol = 3, byrow = FALSE)
dim(M)

Estrazione di elementi da un vettore

R è 1-indexed: il primo elemento di un vettore è in posizione 1. L'operatore () contraddistingue le chiamate a funzioni (es. length()), mentre l'operatore [] contraddistingue gli accessi a vettori/matrici.

Accesso diretto agli elementi

v[2] secondo elemento di v
v[c(1, 3)] primo e terzo elemento di v
v[-1] tutto il vettore v tranne il primo elemento

Funzione which(condizione)

Restituisce gli INDICI di tutti gli elementi che soddisfano la condizione logica specificata.

w = c(5, 9, 9, 9, 9, 1, 1)
which(w == 5)
which(w != 5)
which(w > 1)
which(w > 1 & w <= 5)
which(w > 6 | w == 7)

Funzione unique(vettore)

Permette di determinare i valori univoci di un vettore.

w = c(5, 9, 9, 9, 9, 1, 1)
unique(w)
La funzione length(unique(w)) esprime quanti elementi univoci ci sono in un vettore.

Condizione logica sull'intero vettore

w > 1
w == 7

Estrazione di elementi da una matrice M

Accesso diretto ad elementi

M[2, 3]
M[4, c(1, 3)]

Accesso ad intere colonne o righe

Si utilizza la virgola:

M[3, ]
M[, 2]

Visualizzazione e rimozione delle variabili

Il comando ls() fornisce la lista delle variabili esistenti. Il comando rm(a) rimuove la variabile a. Il comando rm(list = ls()) rimuove tutte le variabili nel workspace.

Pulizia della console

Per Windows si utilizzano i tasti Ctrl+L.

Dataframe

Struttura dei dati del dataframe

I dataframe sono oggetti costituiti da vettori di uguale lunghezza, ma non necessariamente dello stesso tipo. Contrariamente alle matrici, il dataframe è più flessibile e può essere utilizzato con dati di tipo diverso tra loro.

Per crearlo come prima cosa è bene nominarlo, poi si utilizza il comando data.frame(). Es:

esame = data.frame(matricola = as.character(c(45020, 45679, 46789, 43126, 42345, 47568)), voti_S = c(30, 19, 29, NA, 25, 26), voti_O = c(3, 3, 1, NA, 3, 2), voti_TOT = c(30, 22, 30, NA, 28, 28))

Per accedere alle variabili del dataframe, utilizzare solo (es.) voti_S è un errore! Si deve utilizzare il comando esame$voti_S.

Si possono anche rendere visibili le variabili del dataframe direttamente (senza $) con il comando attach(). NB: Per evitare problemi, è sempre bene inserire poi il comando detach(). In questo modo non si rimuove il dataframe, ma il suo accesso diretto.

Per inserire i dati mancanti, invece, si utilizza il comando sum(is.na()). Per rimuovere il dataframe si utilizza il comando rm().

Importazione di un nuovo dataframe

Come prima cosa bisogna localizzare dove si trova il file da importare con il comando:

setwd("C:/percorso/cartella/dove/si/trova/il/dataset").

Poi si crea il dataframe. Es:

studenti = read.table("studenti.txt", header = TRUE, stringsAsFactors = FALSE)

header = TRUE indica che il file importato contiene i nomi delle variabili nella prima riga. stringsAsFactors = FALSE indica le variabili character come stringhe (non come factor).

Il comando names() mostra i nomi delle variabili nel dataframe. Il comando head() mostra le prime tot righe del dataframe. Il comando tail() mostra le ultime tot righe del dataframe. Per capire che tipo di variabili ci sono nel dataframe, e distinguere le variabili categoriche da quelle numeriche si utilizzano i seguenti comandi (es):

str(studenti)
class(studenti)
class(studenti$Sesso)

Tramite il comando as.factor() è possibile creare una variabile categorica. Es:

studenti$Sesso = as.factor(studenti$Sesso)
class(studenti$Sesso)
str(studenti)

Il comando levels(studenti$Sesso) indica i livelli/categorie della variabile qualitativa.

Help

La funzione help(nome_comando) permette di chiarire alcuni dubbi su eventuali comandi o operazioni. È possibile anche utilizzare help(which) oppure ?which.

Operazioni sul dataframe

Selezionare una voce del dataframe

(es. le femmine)

femmine = studenti[which(studenti$Sesso == 'F'),]
dim(femmine)

Calcolare il numero di componenti della voce selezionata

Senza creare un nuovo dataframe:

length(which(studenti$Sesso == 'F'))

Creare la tabella delle frequenza per una variabile categorica/factor

table(studenti$Sesso) NB. la tabella delle frequenze per una variabile numerica (es: table(studenti$Peso)) risulta non molto leggibile!

Salvare il dataframe con la voce selezionata (femmine) in un file di testo:

write.table(femmine, file = 'femmine.txt')

Salvare l'intero ambiente di lavoro (workspace)

save.image('lab_1.RData')

Rimuovere il dataframe con la voce selezionata (femmine)

rm(femmine)

Variabili categoriche

Analisi descrittiva di una variabile qualitativa (dati categorici)

L'analisi di variabili qualitative prevede la creazione di:

  • Tabella di distribuzione delle frequenze per le categorie della variabile:
    • Per creare le tabelle delle frequenze assolute e relative, innanzitutto si utilizza il comando factor() (nominato!!) che converte l'argomento in realizzazione di una variabile categorica i cui possibili valori sono riportati in levels:

    dati=factor()
    levels(dati)

    Specificare i levels non è necessario, ma permette di ordinarli come si vuole (convenzionalmente, in ordine alfabetico).

    Per la tabella delle frequenze assolute si utilizza freq_ass = table(dati). Per la tabella delle frequenze relative si utilizza freq_rel = table(dati) / length(dati), oppure prop.table(freq_ass).

    sum(freq_rel)

    Per verificare se esiste un'interazione fra due variabili del dataframe si crea una tabella congiunta a doppia entrata:

    • Tabella delle frequenze assolute: datitable(dati)
    • Tabella delle frequenze relative: datitable(dati) / sum(table(dati))

    È anche possibile creare una tabella condizionata che esprime la probabilità di verificarsi di un evento, dato il verificarsi di un altro.

    • (dati condizionanti: righe) table(dati) / rowSums(table(dati))
    • (dati condizionanti: colonne) table(dati) / colSums(table(dati))
  • Grafici
    • Diagramma a barre

      par(mfrow = c(1, 2))
      barplot(table(), col = rainbow(length(levels(as.factor()))), main ='Frequenze assolute: DATI’)
      barplot(table() / sum(table()), col = rainbow(length(levels(as.factor()))), main = 'Frequenze relative: DATI')

    • Diagramma a torta

      par(mfrow = c(1, 1))
      pie(table() / sum(table()), col = rainbow(length(levels(as.factor()))), main = 'Frequenze relative: DATI’)

Analisi univariata di variabili quantitative (analisi dei dati quantitativi)

Impostare la cartella di lavoro

SessionSet Working DirectoryTo Source File Location/Choose Directory oppure setwd(<path_string>)

Importazione del dataset

dati = read.table('file.txt', header = TRUE)
head(dati)
dim(dati)
names(dati)

Estrazione di una variabile del dataframe

variabile = dati[which(dati$categoria == 'X'),]
dim(variabile)

Qualche grafico

Per aprire una finestra grafica, usare il comando windows(), oppure x11().

Scatterplot: plot(dati$classe1, dati$classe2, xlab = 'classe1 [u.d.m.]', ylab = ‘classe2 [u.d.m.]', main = 'Scatterplot classe2 vs. classe1')

Per indicare con un colore la variabile si usa il comando: points(variabile$classe1, variabile$classe2, col='red', 123 =19)

Per fare uno zoom intorno alla variabile, modificando i range degli assi, per prima cosa troviamo minimo e massimo del vettore classe1 e classe2 per la variabile:

min_1 = min(variabile$classe1)
max_1 = max(variabile$classe1)
min_2 = min(variabile$classe2)
max_2 = max(variabile$classe2)

Costruiamo poi il grafico relativo:

plot(dati$classe1, dati$classe2, xlab = ‘classe1[udm]', ylab ='classe2[udm]', main = 'Scatterplot classe2 vs. classe1', xlim = c(min_1, max_1), ylim = c(min_2, max_2))
points(variabile$classe1, variabile$classe2, col='red', 123 =19)

NB: con il comando demo(graphics) otteniamo una rassegna di possibili grafici.

Calcolare i principali indici di posizione e di dispersione

∑ osservazioni Media dei dati = media campionaria = , con n = ¿ osservazioni n∑ scarti quadratici della media campionaria Varianza dei dati = ( )n−1 Dispersione del dataset: sum_i(x_i - media campionaria)^2 / (n-1)

  • Media campionaria: mean(dati$classe1)
  • Varianza campionaria: var(studenti$Peso)
  • Deviazione standard campionaria (radice quadrata di var()): sd(studenti$Peso)
  • Deviazione standard della popolazione: sqrt(varianza)

NB: la funzione range_array = range(dati$classe(i)) restituisce

Anteprima
Vedrai una selezione di 5 pagine su 20
Appunti Laboratorio R Pag. 1 Appunti Laboratorio R Pag. 2
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Appunti Laboratorio R Pag. 6
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Appunti Laboratorio R Pag. 11
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Appunti Laboratorio R Pag. 16
1 su 20
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze economiche e statistiche SECS-S/01 Statistica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher letiziavenagli di informazioni apprese con la frequenza delle lezioni di Fondamenti di statistica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Verri Maurizio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community