Introduzione_R - WordPress.com
Transcript
Introduzione_R - WordPress.com
Introduzione a R Monica Marabelli 30 Ottobre 2015 Cos’é R? R é un programma utile per l’analisi dei dati R puó essere utilizzato per: I elaborare dati I svolgere analisi statistiche I effettuare rappresentazioni grafiche Vantaggi e svantaggi di R é per tutte le piattaforme e sistemi operativi é relativamente veloce e gratuito si puó scaricare da http://www.r-project.org/ non é user-friendly utilizza un linguaggio di programmazione Avviare R - versione 3.1.2 La linea di comando, tipicamente caratterizzata da >, viene eseguita semplicemente premendo il tasto Invio della tastiera. I primi passi in R - Aritmetica semplice R puó essere usato come una calcolatrice 20*2 [1]40 3/2+1 [1] 2.5 sqrt(9) [1] 3 Se compare un segno + significa che R sta aspettando un input (manca qualcosa). É sufficiente continuare a scrivere sulla riga successiva. > sqrt(9 + +) [1] 3 Operatori logici Operatori logici molto utili per effettuare confronti includono: == # uguale >= # maggiore uguale <= # minore uguale > # maggiore < # minore != # diverso Il confronto restituisce TRUE o FALSE (T o F) 2*2==4 [1] TRUE 2*2>=4 [1] TRUE 2*3!=6 [1] FALSE Assegnazione di valori a variabili Spesso é utile assegnare il risultato del calcolo a una variabile. x <- 2+3 Il simbolo <- é l’operatore di assegnazione. Il valore sulla destra viene assegnato alla variabile sulla sinistra della freccia. In alternativa é possibile utilizzare l’operatore = x = 2+3 L’operatore di assegnazione si usa quando non si vuole vedere subito il risultato, ma si vuole salvare un ’qualcosa’ che possa essere utilizzato in seguito. Per vedere il contenuto della variabile x, si deve semplicemente scrivere x e premere Invio. Assegnazione di valori a variabili a <- 2 # in questo modo il valore 2 viene assegnato ad a b <- 2+3 # la variabile b é ora salvata in memoria a [1] 2 b [1] 5 Il segno # indica un commento. Tutto quello che c’é scritto dopo viene ignorato da R e non é considerato per i calcoli. Nominare un oggetto L’operatore di assegnazione si usa quindi quando si vuole costruire e tenere in memoria un oggetto. Il termine oggetto indica qualsiasi cosa in R: espressioni, numeri, formule, ... I Se un oggetto non é mai stato definito, non viene riconosciuto da R d Error: Object "d" not found I Quando si decide di creare un oggetto, eventuali oggetti pre-esistenti con lo stesso nome saranno sovrascritti e quindi cancellati. Nominare un oggetto I R é case-sensitive x == X I Non si puó iniziare il nome di un oggetto con un numero 10c <- 2 I # dá un errore # dá un errore Non si possono usare nomi con spazi Punti totali <- 10+23+34 # dá un errore Tipi di dati R accetta diversi tipi di dati a <- 2 class(a) # é un numero [1] "numeric" b <- "pippo" class(b) # é una stringa di testo [1] "character" c <- FALSE class(c) # é un’espressione logica [1] "logical" Tipi di oggetti: il vettore Un vettore é una sequenza di elementi. In R é possibile creare tanti tipi di vettori: numerici, logici, di caratteri e di numeri complessi. Ad esempio, se si vuole creare un vettore y con i numeri 2,7,4, 5 il comando da dare a R é il seguente: y <- c(2,7,4,5) # la c serve per concatenare gli elementi Se chiediamo a R cos’é y, R risponderá stampando i valori y [1] 2 7 4 5 Altri esempi a <- c(0.5, 0.6) b <- c(TRUE, FALSE) c <- c(T, F) d <- c("a", "b", "c") e <- 9:29 # sequenza di numeri dal 9 al 29 Accedere agli elementi dei vettori Consideriamo il vettore y y <- c(2,7,4,5) y [1] 2 7 4 5 length(y) # indica quanti elementi contiene il vettore [1] 4 y[1] [1] 2 # indica qual é il primo elemento del vettore Accedere agli elementi dei vettori y>3 # indica quali elementi del vettore sono >3 [1] FALSE TRUE TRUE TRUE z <- y[y>3] z [1] 7 4 5 # crea un sottogruppo di y con gli elementi >3 Esercizio 1 Crea un vettore alfa con sei numeri, quindi crea un sottogruppo beta con i numeri di alfa piú piccoli di 3 Esercizio 1 alfa <- c(1,3,5,7,9,2) beta <- alfa[alfa < 3] beta [1] 1 2 Le funzioni Una funzione in R é un insieme di comandi può essere scritto per assolvere un determinato compito. R è dotato di una grande quantità di funzioni. Ad esempio, la funzione mean() ha tutte le istruzioni per calcolare la media. dati <- c(1,2,3,4) m <- mean(dati) m [1] 2.5 Esercizio 2 Uno studente ha ottenuto in sei materie i seguenti voti: 24,30,25,20,18,24. Determinare la media dei voti. Esercizio 2 Si puó calcolare la media cosí (24+30+25+20+18+24)/6 [1] 23.5 oppure usando la funzione mean voti <- c(24,30,25,20,18,24) mean(voti) [1] 23.5 Tipi di oggetti: il dataframe Il dataframe é una struttura con due dimensioni: I le righe corrispondono alle unitá statistiche (ID1,ID2, . . . ) I le colonne corrispondono alle variabili (peso, altezza, . . . ) E’ molto usato per l’analisi dei dati. Il dataframe nrow indica quante righe ha il dataframe ncol indica quante colonne ha il dataframe Visto che le colonne sono le variabili hanno quasi sempre un nome, che si ottiene con colnames Le colonne si indicano con nomedataframe$nomecolonna Creiamo un dataframe names <- c("Maria","Giovanni","Antonio","Silvia","Carlo") age <- c(15,30,27,29,30) my.dat <- data.frame(names,age) my.dat 1 2 3 4 5 names Maria Giovanni Antonio Silvia Carlo age 15 30 27 29 30 str(my.dat) ’data.frame’: 5 obs. of 2 variables: $ names: Factor w/ 5 levels "Antonio","Carlo",..: 4 3 1 5 2 $ age : num 15 30 27 29 30 summary(my.dat) names Antonio :1 Carlo :1 Giovanni:1 Maria :1 Silvia :1 age Min. :15.0 1st Qu.:27.0 Median :29.0 Mean :26.2 3rd Qu.:30.0 Max. :30.0 La working directory La directory di lavoro é la cartella dove vengono salvati e da cui vengono importati direttamente i file. getwd() # indica qual é la wd in cui ci si trova [1] "C:/Users/MONICA/Documents" Invece setwd permette di cambiare la directory setwd("Y:/STATISTICA") Alternativamente é possibile utilizzare il menú a tendina da "File|Change dir..." Leggere i dati da un file Le funzioni principali per leggere i dati sono read.table() e read.csv(). Le due funzioni sono molto simili. Leggiamo il dataset esami_sangue.csv setwd ("Y:/STATISTICA") blood <- read.table (file="esami_sangue.csv", header=TRUE, sep=";", dec=",") Scopriamo come é fatto il dataset dim(blood) [1] 30 13 colnames(blood) [1] "id" "sesso" "piastrine" "GB" "GR" [6] "Glicemia" "Colesterolo" "HDLC" "LDL" "Trigliceridi" [11] "Uricemia" "Attfisica" "Caffé" str(blood) ’data.frame’: 30 obs. of 13 variables: $ id : int 1 2 3 4 5 6 7 8 9 10 ... $ sesso : Factor w/ 2 levels "F","M": 1 1 1 2 2 1 2 1 1 1 ... $ piastrine : int 240 271 77 222 184 212 226 369 222 104 ... $ GB : num 4.77 10.9 7.42 5 7.38 8.15 12.5 4.8 6.2 10.1 ... $ GR : num 4.48 5.31 5.7 4.01 4.53 4.64 5.2 3.9 6.1 5.31 ... $ Glicemia : num 90.8 83 97.8 100.2 86.7 ... $ Colesterolo : num 231 185 207 220 258 ... $ HDLC : num 81.3 63 46.9 76.2 49.5 77.4 50.2 54.8 77.3 67.3 ... $ LDL : int 138 103 146 138 189 160 135 145 179 166 ... $ Trigliceridi: num 56.9 96 72.7 28.9 101.4 ... $ Uricemia : Factor w/ 6 levels "2.528","2.700",..: 5 2 3 1 4 6 2 3 1 4 ... $ Attfisica : Factor w/ 3 levels "intensa","moderata",..: 3 1 3 1 2 3 1... $ Caffé : int 3 3 2 3 1 3 2 3 3 1 ... head(blood) 1 2 3 4 5 6 1 2 3 4 5 6 id 1 2 3 4 5 6 Uricemia 3.326 2.700 2.880 2.528 3.017 4.374 sesso F F F M M F Attfisica scarsa intensa scarsa intensa moderata scarsa piastrine 240 271 77 222 184 212 Caffé 3 3 2 3 1 3 GB 4.77 10.90 7.42 5.00 7.38 8.15 GR 4.48 5.31 5.70 4.01 4.53 4.64 Glicemia 90.84 83.00 97.80 100.20 86.70 95.30 ... Statistica descrittiva Quanti sono i maschi e quante le femmine? table(blood$sesso) F 20 M 10 Qual é la media della glicemia? mean(blood$Glicemia) [1] 92.14133 Qual é il valore minimo della glicemia? min(blood$Glicemia) [1] 78.3 Qual é il valore massimo? max(blood$Glicemia) [1] 110.3 Qual é la mediana? median(blood$Glicemia) [1] 89.8 Qual é il valore medio di glicemia nei maschi e nelle femmine? aggregate(formula = Glicemia~sesso, data = blood, FUN = "mean") 1 2 sesso F M Glicemia 90.372 95.680 Quando siamo persi: chiedere aiuto a R Con la funzione help() possiamo chiedere aiuto a R su come scrivere i comandi. help(mean) ?mean