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