Manipolazione e analisi dei dati in R
Utilizzo della funzione subset
Quindi ci viene detto quali elementi abbiamo e quante volte sono ripetuti. Funzione subset (nome del database di partenza, regola di sottocampionamento = in base a che cosa vogliamo sottocampionare). Al posto di prova quello che otteniamo si chiamerà bar_a.
bar_a <- subset(prova, Bar==“A”) e otteniamo una tabella nuova in cui ora abbiamo solo elementi A nella colonna Bar con la rispettiva riga di riferimento (quindi avremo solo gli elementi A, non tutti).
Subset su più condizioni
Vogliamo avere un bar_ac che contenga o A o C. La linea verticale corrisponde a or = |.
bar_ac <- subset(prova, c(Bar==“A”|Bar==“C”))
Oppure possiamo ottenere lo stesso identico dataframe eliminando B:
bar_ac2 <- subset(prova, Bar!= “B”)
Esportazione di un database
Come esportare un database? Usiamo la funzione write.table. Il secondo elemento è il nome che gli diamo. Mettiamo l’estensione, ovvero csv. Infine abbiamo header che però si chiama diversamente, ovvero col.names. A noi interessa il numero delle righe? No, allora mettiamo falso. Se no avremmo una prima colonna con il numero delle righe chiamata con il nome che abbiamo dato alla prima colonna.
Operazioni sui data frame
str(dati_2)nrow(dati_2)e otteniamo 100 che sono le righe;ncol(dati_2)e otteniamo 5 che sono le colonne;dim(dati_2)e otteniamo 100 5 = ci permette di ottenere le dimensioni di un oggetto (in questo caso un data frame ha righe e colonne);colnames(dati_2)ci permette di richiamare tutti i nomi delle colonne;
Modifica dei nomi delle colonne
Dentro la colonna genere quanti sono gli 1 e quanti sono i 2?
dati_2$genereotteniamo tutti i numeri, sia gli 1 che i 2table(dati_2$genere)otteniamo che gli 1 sono 54 e i 2 46.
Come modificare il nome della colonna genere in SB?
colnames(dati_2)[1] <- “SB”
Utilizzo della funzione ifelse
Vogliamo sostituire gli 1 con il carattere F e i 2 con il carattere M. Se gli elementi di dati_2-SB sono uguali a 1 mettere F, altrimenti M.
dati_2$SBifelse(dati_2$SB==1,”F”,”M”)
Gestione delle condizioni multiple
Come fare se abbiamo tre condizioni e non più due? Usiamo which.
which(dati_2$SB==1)dati_2[which(dati_2$SB==1),1] <- “F”
Creazione di nuove colonne
Creiamo una nuova colonna che si chiama item. Le prime venti celle sono il numero 1, poi 2, poi 3, poi 4, poi 5 (in totale 100 items).
dati_2$item <- rep(1:5, each=20)
Inversione di un punteggio
Per invertire un punteggio, data una scala, si prendono gli estremi (1 e 5), si sommano e basta sottrarre qualunque valore della scala in questione.
dati_2$item_invertiti <- 6-dati_2$item
Esercizi pratici
table(prova$Bar)summary(prova$Spritz)summary(prova$Ore_studio)
Creare un subset sub1 in cui c'è solo chi studia più di 10 ore.
sub1 = subset(prova, Ore_studio> 10)
Creare un subset sub2 in cui c'è solo chi beve più di 4 spritz e studia meno di 4 ore.
sub2 = subset(dati, Spritz > 4 & Ore_studio < 4)
Calcolo statistico sui dati
Usando il dataset originale, in media quanti spritz si bevono nel bar C?
barc = subset(dati, Bar == “C”)mean(barc$Spritz) # 5.095238
Creazione di variabili ed analisi del corso di studio
Creare una variabile corso che contenga il corso di studio. Nelle prime 13 righe inserire psicologia, nelle seconde 13 inserire ingegneria, nelle 13 successive inserire biologia, nelle ultime 13 inserire statistica.
prova$corso = c(rep(“psico”,13),rep(“ing”,13),rep(“bio”,13),rep(“stat”,13),rep(“NA”,6))
In quale corso si bevono più spritz in media?
psico = subset(prova, corso ==“psico”)mean(psico$Spritz) # 6.53 a psicologia
Creazione di una matrice
Creare una matrice 4X4 che contenga i numeri da 10 a 25 ordinati per riga.
M = matrix(10:25, 4, 4, byrow = TRUE)
Calcolo dell'alpha di Cronbach
Vogliamo calcolare l'alpha di Cronbach. Per importare un pacchetto utilizziamo library(psych). All'interno di psych abbiamo la funzione alpha.
library(psych)alpha(Ansia)
Otteniamo una lista risultati, che è un contenitore di tanti oggetti. Ogni oggetto avrà il suo spazio che potremo recuperare indicizzando.
risultati <- alpha(Ansia)
Calcolo del K di Cohen
Vogliamo calcolare il K di Cohen. Questi sono tutti modi diversi per recuperare i dati in una matrice:
table(dati$Opa, dati$Opb)tab <- matrix(c(18, 2, 3, 26), 2, 2, byrow = TRUE)
Ora vogliamo calcolare i marginali di riga e di colonna:
rowSums(tab2)colSums(tab2)
Calcoliamo gli accordi osservati, N e gli accordi attesi:
a_oss <- 18+26N <- 49
Ora abbiamo tutti gli elementi per calcolare il K di Cohen:
cohen_kappa = (a_oss - aa) / (N - aa)
Secondo modo per calcolare il k di Cohen utilizzando una funzione:
library(irr)kappa2(cbind(dati$Opa, dati$Opb))
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Disegni
-
Appunti esame Disegni di ricerca e analisi dei dati in psicologia clinica e della salute
-
Schemi disegni di ricerca e analisi dei dati
-
Appunti di disegni di ricerca e analisi dei dati in psicologia clinica e della salute