SlideShare a Scribd company logo
1 of 158
Download to read offline
Una introduzione ad R
                               parte I




                                                           C. White, Part of “ Drops of Rain”, 1967
                       Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
“La potenza è nulla senza
                       controllo”
                              Pubblicità Pirelli




Tuesday, March 6, 12
Una Introduzione ad R: parte I




                                       Sommario



                 •R: un ambiente open source per l’analisi statistica dei dati

                 •Le funzionalità dell’ambiente R

                 •Creazione e importazione dei dati


 Tratta dalle presentazioni di Corrado Caudek della facoltà di psicologia dell’università
    di Firenze nel corso di Tecniche di Ricerca Psicologica e di Analisi dei Dati, A.A.
                                       2007/2008                                        3

 Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                 R: un ambiente opensource per l’analisi statistica dei dati
                       Che cos’è R?




                 Che cos’è R?
                                  R è un software che permette di elaborare dati, eseguire
                                  calcoli ed effettuare rappresantazioni grafiche.
                                  E’ distribuito gratuitamente ed disponibile per diversi
Corrado Caudek




                                  sistemi operativi: Windows, MacOS, Unix, Linux.
                                  Sul sito http://www.r-project.org è possibile
                                  scaricare, oltre che il programma base, anche una serie di
                                  moduli aggiuntivi (packages) e un’ampia manualistica.




                                                                                               4

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                 R: un ambiente opensource per l’analisi statistica dei dati
                       Installazione




                 Installazione
Corrado Caudek




                                                                               5

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




                                    6


Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                  R: un ambiente opensource per l’analisi statistica dei dati
                       Installazione




                  Installazione
Corrado Caudek




                                                                                7

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                  R: un ambiente opensource per l’analisi statistica dei dati
                       Installazione




                  Installazione
Corrado Caudek




                                                                                8

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                 R: un ambiente opensource per l’analisi statistica dei dati
                       Installazione
                         Pacchetti



                 Pacchetti
                                       Il modulo base offre gli strumenti fondamentali per l’analisi
                                       statistica.
                                       Questo modulo base può essere integrato da una serie di
Corrado Caudek




                                       altre librerie addizionali che possono essere installate
                                       dall’utente dopo averle scaricate dal sito succitato.
                                       Sul sito del The Comprehensive R Archive Network -
                                       CRAN è possibile scaricare un grande numero di
                                       packages che spaziano nei più disparati campi della
                                       statistica applicata.




                                                                                                       9

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   R: un ambiente opensource per l’analisi statistica dei dati
                       Installazione
                         Pacchetti



                   Pacchetti
Corrado Caudek




                                                                                 10

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   R: un ambiente opensource per l’analisi statistica dei dati
                       Interagire con R
                         La R-console



                   Interfaccia CUI
                                   Come indicato dall’esempio precedente, R utilizza
                                   un’interfaccia utente a carattere (CUI) in cui le funzioni e
                                   le istruzioni vengono immesse da una linea di comando.
Corrado Caudek




                                           Esiste un’interfacca GUI chiamata R Commander che è
                                           equivalente a quella dei software commerciali.
                                           Per motivi di ordine didattico, in questo corso impareremo
                                           ad usare direttamente le funzioni di R attraverso la
                                           R-console, senza ricorrere all’interfaccia grafica.




                                                                                                        11

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                       R: un ambiente opensource per l’analisi statistica dei dati
                          Interagire con R
                             La R-console



                       Perché R?
                                       C’è un preciso motivo didattico per decidere di usare R
                                       senza l’interfaccia grafica:
                                               è inutile e dannoso svolgere una qualunque analisi dei dati
Corrado Caudek




                                               senza capire che cosa si sta facendo;
                                               l’utilizzo di R aiuta a rendere esplicite le operazioni che
                                               stanno alla base delle analisi statistiche e quindi
                                               rappresenta un efficace strumento didattico.




                                                                                                             12

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   R: un ambiente opensource per l’analisi statistica dei dati
                       Interagire con R
                         La R-console



                   Perché R?
                                   Al di là dei suoi vantaggi didattici, il software R
                                             fornisce uno strumento di lavoro professionale che
                                             consente di svolgere la grande maggioranza delle analisi
                                             dei dati psicologici;
Corrado Caudek




                                             consente di svolgere con semplicità la visualizzazione e
                                             l’analisi esplorativa dei dati – due operazioni che sono
                                             specialmente importanti per l’analisi dei dati psicologici;
                                             è corredato da un’ampia documentazione;
                                             è gratuito.
                                          •si possono lanciare script




                                                                                                           13

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R




                   Sommario
                          Elementi di sintassi
                             Iniziare e chiudere una sessione di R
                             Aritmetica
Corrado Caudek




                             Vettori
                             Gestione di vettori
                          La matrice dei dati
                             Definizione
                             Il dataframe
                          Lo spazio di lavoro
                             Workspace
                             La funzione search()
                             La funzione attach()
                             La funzione detach()
                                                                     14

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Iniziare e chiudere una sessione di R



                   Iniziare e chiudere una sessione di R
                                    Per iniziare una sessione R fare un doppio click di mouse
                                    sulla icona di R.
                                    Per uscire da R, chiudere la finestra della R-console.
Corrado Caudek




                                              Alla domanda rispondere “Registro un’immagine del
                                              workspace?” rispondere “No”.
                                              Se si risponde affermativamente, i dati e le variabili della
                                              sessione corrente verranno salvati per la sessione
                                              successiva.
                                              Per liberarsi di questi dati, digitare
                                               > unlink(".RData")




                                                                                                             15

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Aritmetica



                   Semplice aritmetica
                                    In R, qualunque cosa venga scritta al prompt viene
                                    valutata:
                                    > 2+3
Corrado Caudek




                                    [1] 5
                                    > 2-3
                                    [1] -1
                                    > 2*3
                                    [1] 6
                                    > 2/3
                                    [1] 0.6666667
                                    > 2^3
                                    [1] 8




                                                                                         16

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Aritmetica



                   Semplice aritmetica
                           > 4^2-3*2
                           [1] 10
                           > (4^2)-(3*2)
Corrado Caudek




                           [1] 10
                           > 2^-3
                           [1] 0.125
                           > -2--3
                           [1] 1
                           > -2 - -3
                           [1] 1




                                                     17

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Aritmetica



                   Assegnazione di valori
                                    Si può salvare un valore assegnandolo ad un oggetto
                                    mediante l’operatore “<-”:
                                    > a <- 2
Corrado Caudek




                                    > a
                                    [1] 2

                                    L’operatore “<-” si ottiene digitando “<” seguito da “-”
                                    (senza spazi tra i due).




                                                                                               18

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Aritmetica



                   Maiuscole e minuscole
                                    Si faccia attenzione che R è sensibile alla distinzione tra
                                    maiuscole e minuscole.
                                    Di conseguenza l’oggetto “a” è diverso dall’oggetto “A”:
Corrado Caudek




                                    > A
                                    Errore: oggetto "A" non trovato
                                    > a
                                    [1] 2




                                                                                                  19

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Vettori



                   Vettori
                                    Dal nostro punto di vista, i software statistici come R sono
                                    utili perché consentono di manipolare, non soltanto gli
                                    scalari (come fa qualunque calcolatrice portatile), ma
Corrado Caudek




                                    direttamente i vettori di una matrice di dati.
                                    Un vettore di dimensione n può essere definito come una
                                    sequenza ordinata di n numeri.
                                    Ad esempio (2, 5, 9.5, -3) rappresenta un vettore di
                                    dimensione 4 in cui il primo elemento è 2 ed il quarto è -3.




                                                                                                   20

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                  Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Vettori



                  Vettori
                                    Esistono molti modi per costruire un vettore
                                    nell’ambiente R, il più comune è utilizzare la funzione c():
                                    > x <- c(2, 5, 9.5, -3)
Corrado Caudek




                                    > x
                                    [1] 2.0 5.0 9.5 -3.0

                                              Le variabili di una matrice di dati sono oggetti di questo tipo.




                                                                                                                 21

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                  Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Vettori



                  Vettori
                                    Abbiamo visto in precedenza come applicare le operazioni
                                    aritmetiche agli scalari:
                                    > a       <- 2
Corrado Caudek




                                    > a
                                    [1]       2
                                    > a       + 2
                                    [1]       4

                                    Queste stesse le operazioni aritmetiche possono essere
                                    applicate ai vettori.




                                                                                               22

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Vettori



                   Operazioni sui vettori
                                    Le operazioni aritmetiche applicate ai vettori sono eseguite
                                    elemento per elemento:
                                    > x
Corrado Caudek




                                    [1]        2.0 5.0 9.5 -3.0
                                    > x       + 2
                                    [1]        4.0 7.0 11.5 -1.0
                                    > x       / 2
                                    [1]        1.00 2.50 4.75 -1.50
                                    > a
                                    [1]       2
                                    > a       * x
                                    [1]         4 10 19 -6




                                                                                                   23

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Vettori



                   Operazioni sui vettori
                                    Si noti come, nel caso di un’operazione algebrica compiuta
                                    su un vettore e uno scalare, quello che facciamo è
                                    semplicemente di ripetere l’operazione algebrica per
                                    ciascuno degli elementi del vettore.
Corrado Caudek




                                              Nel primo esempio, abbiamo eseguito 4 somme, una per
                                              ciascuno degli elementi del vettore x.
                                              Nel secondo caso, sono stati eseguiti 4 rapporti.




                                                                                                     24

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                  Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Vettori



                  Selezione degli elementi dei vettori
                                    Come possono essere selezionati gli elementi di un
                                    vettore?
                                    Gli elementi di un vettore possono essere selezionati
Corrado Caudek




                                    usando le parentesi quadre []:
                                    > x
                                    [1] 2.0 5.0     9.5 -3.0
                                    >
                                    > x[2]
                                    [1] 5
                                    >
                                    > x[2] / x[1]
                                    [1] 2.5




                                                                                            25

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                  Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Gestione di vettori



                  Gestione di vettori
                                    R offre varie funzioni per la manipolazione dei vettori.
                                    Per i nostri scopi, sarà necessario conoscere le funzioni
                                    che consentono di calcolare
Corrado Caudek




                                              il numero di elementi contenuti in un vettore: length()
                                              il valore massimo degli elementi di un vettore: max()
                                              il valore minimo degli elementi di un vettore: min()
                                              la somma degli elementi di un vettore: sum()




                                                                                                        26

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Gestione di vettori



                   Funzioni R
                                    Le funzioni R richiedono uno o più argomenti che
                                    vengono inseriti all’interno di parentesi tonde.
                                              Per esempio, la funzione per calcolare la media di una
                                              variabile, mean() richiede come argomento il nome della
Corrado Caudek




                                              variabile, per esempio x, di cui si vuole calcolare la media:
                                              > mean(x)
                                              La funzione plot() utilizzata per creare un diagramma di
                                              dispersione richiede due argomenti, separati da una
                                              virgola, la variabile x posta in ascissa e la variabile y in
                                              ordinata:
                                              > plot(x, y)




                                                                                                              27

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Gestione di vettori



                   Gestione di vettori
                           > x
                           [1] 2.0 5.0               9.5 -3.0
                           > length(x)
Corrado Caudek




                           [1] 4
                           > min(x)
                           [1] -3
                           > max(x)
                           [1] 9.5
                           > sum(x)
                           [1] 13.5
                           > mean(x)
                           [1] 3.375




                                                                28

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                  Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Gestione di vettori



                  Media
                           La media di x è               n
                                                         i=1 xi
                                                    ¯=
                                                    x
                                                         n
Corrado Caudek




                           > sum(x)
                           [1] 13.5
                           > length(x)
                           [1] 4
                           > sum(x)/length(x)
                           [1] 3.375
                           > mean(x)
                           [1] 3.375

                                                                            n
                           Si noti che la funzione sum(x) esegue la somma   i=1 xi .




                                                                                       29

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Gestione di vettori



                   Varianza
                                    Calcoliamo ora la varianza di x è
                                                                 n
                                                                 i=1 (xi       ¯)2
                                                                               x
                                                         s2 =
                                                          x
Corrado Caudek




                                                                   n       1
                                    Gli scarti di ciascun valore dalla media sono
                                    > x - mean(x)
                                    [1] -1.375 1.625    6.125 -6.375
                                    Il quadrato degli scarti è
                                    > ( x - mean(x) )^2
                                    [1] 1.890625 2.640625 37.515625 40.640625




                                                                                     30

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Gestione di vettori



                   Varianza
                                    La somma del quadrato degli scarti è
                                    > sum( ( x - mean(x) )^2 )
                                    [1] 82.6875

                                    Il numeratore della varianza è la devianza: n (xi ¯)2 .x
Corrado Caudek




                                                                                    i=1
                                    La devianza divisa per i gradi di libertà (n 1) produce la
                                    varianza:
                                    > sum( ( x - mean(x) )^2 ) / (length(x)-1)
                                    [1] 27.5625

                                    Lo stesso risultato viene prodotto dalla funzione var():
                                    > var(x)
                                    [1] 27.5625




                                                                                                 31

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Gestione di vettori



                   Deviazione standard
                                    La radice quadrata della varianza è la deviazione standard
                                                            ⇥
                                                                 n
                                                                 i=1 (xi ¯)2
                                                                         x
                                                       sx =
Corrado Caudek




                                                                   n 1
                                    > sqrt( sum( ( x - mean(x) )^2 ) / (length(x)-1) )
                                    [1] 5.25
                                    > sd(x)
                                    [1] 5.25
                                    > sqrt(var(x))
                                    [1] 5.25




                                                                                                 32

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Elementi di sintassi
                         Gestione di vettori



                   summary()
                                    La funzione summary() è molto utile per ottenere alcune
                                    statistiche descrittive di una variabile:
                                              il valore minimo, il massimo, il primo quartile, il terzo
Corrado Caudek




                                              quartile, la mediana e la media.
                                    > summary(x)
                                       Min. 1st Qu.         Median      Mean 3rd Qu.       Max.
                                     -3.000   0.750          3.500     3.375   6.125      9.500




                                                                                                          33

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       La matrice dei dati
                         Definizione



                   Matrice dei dati
                                   Il ricercatore sceglie un certo insieme di oggetti (detti casi
                                   – per es., soggetti) e registra il loro stato su alcune
                                   proprietà (per es., intelligenza), che vengono trasformate in
Corrado Caudek




                                   variabili mediante altrettante definizioni operative (per es.,
                                   il punteggio di QI prodotto dalla WAIS-III).
                                   Se la registrazione è sistematica (si registra lo stato di tutti
                                   i casi su tutte le proprietà), è possibile organizzare
                                   l’informazione raccolta in una matrice dei dati.




                                                                                                      34

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       La matrice dei dati
                         Definizione



                   Matrice dei dati
                                   La matrice dei dati ha tante righe quanti sono i casi e tante
                                   colonne quante sono le variabili.
                                   Nell’intersezione tra una riga e una colonna sta un dato,
Corrado Caudek




                                   cioè il valore assegnato a un certo caso su una certa
                                   proprietà.




                                                                                                   35

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       La matrice dei dati
                         Definizione



                   Matrice dei dati
Corrado Caudek




                           Si noti che, a differenza da quanto indicato nella figura, R non
                           consente l’uso di spazi nelle etichette utilizzate per le modalità
                           delle variabili qualitative.

                                                                                                36

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       La matrice dei dati
                         Definizione



                   Matrice dei dati
                                   Come indicato nella figura, la matrice dei dati contiene sia
                                   variabili quantitative, sia variabili qualitative.
                                   Le colonne della matrice dei dati che contengono variabili
Corrado Caudek




                                   quantiative sono dette vettori.




                                                                                                 37

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       La matrice dei dati
                         Il dataframe



                   La matrice di dati in R
                                   La matrice di dati viene generata in R con la funzione
                                   data.frame().
                                   Supponiamo di avere tre variabili costituite dallo stesso
                                   numero di elementi:
Corrado Caudek




                                   > x <- c(1, 2, 3, 3, 5, 7)
                                   > y <- c(2, 3, 1, 4, 6, 8)
                                   > z <- factor( c(’a’,’b’,’c’,’a’,’b’,’c’) )

                                   Le variabili x e y sono quantitative; la variable z è
                                   qualitativa.




                                                                                               38

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       La matrice dei dati
                         Il dataframe



                   Funzione factor()
                                   Si noti la particolare sintassi usata per creare una variabile
                                   qualitativa.
                                             In primo luogo, la funzione factor() specifica che la
Corrado Caudek




                                             variabile va intesa come una variabile qualitativa.
                                             In secondo luogo, gli elementi passati alla fuzione c()
                                             sono racchiusi da virgolette.
                                   > z <- factor( c(’a’,’b’,’c’,’a’,’b’,’c’) )
                                   > z
                                   [1] a b c a b c
                                   Levels: a b c




                                                                                                       39

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                  Le funzionalità dell’ambiente R
                       La matrice dei dati
                         Il dataframe



                  Funzione data.frame()
                                   La matrice di dati che contiene le variabili x, y, z si
                                   costruisce nel modo seguente:
                                   > dat     <- data.frame(x, y, z)
Corrado Caudek




                                   > dat
                                     x y     z
                                   1 1 2     a
                                   2 2 3     b
                                   3 3 1     c
                                   4 3 4     a
                                   5 5 6     b
                                   6 7 8     c

                                   Abbiamo così costruito un oggetto R di classe
                                   data.frame.



                                                                                             40

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       La matrice dei dati
                         Il dataframe



                   Dimensioni del dataframe
                                   Il numero di righe e di colonne di un dataframe viene
                                   calcolato dalla funzione dim():
                                   > dim(dat)
Corrado Caudek




                                   [1] 6 3
                                   >
                                   > dat
                                     x y z
                                   1 1 2 a
                                   2 2 3 b
                                   3 3 1 c
                                   4 3 4 a
                                   5 5 6 b
                                   6 7 8 c




                                                                                           41

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       La matrice dei dati
                         Il dataframe



                   Selezionare una parte del dataframe
                                   Come nel caso dei vettori, gli elementi di un dataframe
                                   possono essere selezionati utilizzando le parentesi
                                   quadre, ovvero specificando il numero di riga (primo
Corrado Caudek




                                   parametro) e il numero di colonna (secondo parametro):
                                   > dat
                                     x y z
                                   1 1 2 a
                                   2 2 3 b
                                   3 3 1 c
                                   4 3 4 a
                                   5 5 6 b
                                   6 7 8 c
                                   > dat[3,2]
                                   [1] 1
                                   > dat[5,3]
                                   [1] b


                                                                                             42

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                       Le funzionalità dell’ambiente R
                          La matrice dei dati
                            Il dataframe



                       Selezionare una parte del dataframe
                                      Se uno dei due indici non viene specificato, si intendono
                                      tutti gli elementi di quella/e riga/e o colonna/e:
                                      > dat[,1]
Corrado Caudek




                                      [1] 1 2 3          3 5 7
                                      > dat[,2]
                                      [1] 2 3 1          4 6 8
                                      > dat[,3]
                                      [1] a b c          a b c
                                      Levels: a          b c
                                      >
                                      > dat[2,]
                                        x y z
                                      2 2 3 b
                                      > dat[3,]
                                        x y z
                                      3 3 1 c



                                                                                                 43

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                       Le funzionalità dell’ambiente R
                          La matrice dei dati
                            Il dataframe



                       Operatore :
                                      L’operatore : viene usato per indicare la gamma di
                                      variazione di un indice.
                                      Per esempio, per selezionare le righe 3, 4, 5, 6 dal
Corrado Caudek




                                      dataframe dat usiamo la seguente sintassi:
                                      > dat[3:6, ]
                                        x y z
                                      3 3 1 c
                                      4 3 4 a
                                      5 5 6 b
                                      6 7 8 c




                                                                                             44

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Lo spazio di lavoro
                         Workspace



                   Lo spazio di lavoro
                                   Gli oggetti presenti nello spazio di lavoro (workspace)
                                   possono essere elencati usando la funzione ls():
                                   > ls()
Corrado Caudek




                                   [1] "dat" "x"     "y"   "z"
                                   Eliminiamo ora dallo spazio di lavoro gli oggetti x, x, z:
                                   > rm(x, y, z)
                                   > ls()
                                   [1] "dat"




                                                                                                45

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Lo spazio di lavoro
                         Workspace



                   Lo spazio di lavoro
                                   Si noti che l’oggetto x, per esempio, non è più presente
                                   nello spazio di lavoro, pur essendo contenuto nel
                                   dataframe dat:
Corrado Caudek




                                   > x
                                   Errore: oggetto "x" non trovato
                                   > dat
                                     x y z
                                   1 1 2 a
                                   2 2 3 b
                                   3 3 1 c
                                   4 3 4 a
                                   5 5 6 b
                                   6 7 8 c




                                                                                              46

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Lo spazio di lavoro
                         La funzione attach()



                   La funzione attach()
                                   Utilizziamo ora la funzione attach() a cui passiamo
                                   come parametro il nome dell’oggetto dat avente classe
                                   data.frame:
Corrado Caudek




                                   > attach(dat)
                                   > search()
                                    [1] ".GlobalEnv"         "dat"
                                    [3] "tools:RGUI"         "package:stats"
                                    [5] "package:graphics"   "package:grDevices"
                                    [7] "package:utils"      "package:datasets"
                                    [9] "package:methods"    "Autoloads"
                                   [11] "package:base"




                                                                                           47

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                       Le funzionalità dell’ambiente R
                          Lo spazio di lavoro
                            La funzione attach()



                       La funzione attach()
                                      Ora dat è presente nel percorso di ricerca.
                                      Quando digitiamo x, l’interprete R svolge una ricerca in
                                      tutte le locazioni specificate dal percorso di ricerca, che
Corrado Caudek




                                      ora comprende il dataframe dat, e recupera la variabile x
                                      dal dataframe dat:
                                      > x
                                      [1] 1 2 3 3 5 7




                                                                                                   48

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Lo spazio di lavoro
                         La funzione attach()



                   La funzione attach()
                                   Si tenga a mente che è pericoloso applicare la funzione
                                   attach() a più di un dataframe simultaneamente.
                                   Se due dataframe contengono due variabili diverse, ma
Corrado Caudek




                                   aventi lo stesso nome, l’interprete R ne selezionerà quella
                                   contenuta nel dataframe che precede l’altro nel percorso di
                                   ricerca.
                                   Questo può non essere quello che intende l’utente. Per
                                   evitare pasticci, dunque, quando un dataframe non viene
                                   più utilizzato, è opportuno eliminarlo dal percorso di
                                   ricerca.




                                                                                                 49

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Lo spazio di lavoro
                         La funzione detach()



                   La funzione detach()
                                   Dal momento che le variabili in un dataframe possono
                                   “mascherare” le variabili in un altro dataframe, è buona
                                   pratica usare la funzione attach() con un dataframe alla
Corrado Caudek




                                   volta.
                                   Un data frame può essere rimosso dal percorso di ricerca
                                   mediante la funzione detach():
                                   > detach(dat)
                                   > x
                                   Errore: oggetto "x" non trovato




                                                                                              50

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Le funzionalità dell’ambiente R
                       Lo spazio di lavoro
                         La funzione detach()



                   Selezione di una variabile da un dataframe
                                   In alternativa, senza utilizzare la funzione attach(), una
                                   variabile può essere recuperata direttamente da un
                                   dataframe utilizzando la seguente sintassi:
Corrado Caudek




                                   > x
                                   Errore: oggetto "x" non trovato
                                   > dat$x
                                   [1] 1 2 3 3 5 7




                                                                                                51

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                       Creazione e importazione di dati
                          Importazione di dati
                            Funzione read.table()



                       Importazione dei dati
                                      L’inserimento dei dati nello spazio di lavoro può essere
                                      affrontato mediante la funzione data.frame().
                                      Alternativamente, X<-data.frame() crea un dataframe
Corrado Caudek




                                      che è poi possibile aprire con fix(X) per l’inserimento dei
                                      dati direttamente nelle celle.
                                      Un’altra possibilità è quella di importare i dati che sono
                                      disponibili in un file ASCII creato da un qualsiasi altro
                                      programma.




                                                                                                    52

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Importazione di dati
                         Funzione read.table()



                   Importazione dei dati contenuti in un file ASCII
                                   La funzione da utilizzare a tale scopo è read.table().
                                   Si supponga che il file ASCII duncan.txt sia così
                                   costituito:
Corrado Caudek




                                     type income education prestige
                                     prof     62        86       82
                                     prof     72        76       83
                                     prof     75        92       90
                                     prof     55        90       76
                                     prof     64        86       90

                                   ...

                                   Si noti che la prima riga contiene il nome delle variabili.




                                                                                                 53

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Importazione di dati
                         Funzione read.table()



                   Importazione dei dati contenuti in un file ASCII
                                   La prima operazione da fare è quella di selezionare,
                                   mediante il menu della R-console, l’opportuna cartella di
                                   lavoro che contiene il file di dati.
Corrado Caudek




                                   Fatto ciò, i dati possono essere importati nell’ambiente R
                                   nel modo seguente:
                                   > duncan <- read.table("duncan.txt", header=TRUE)




                                                                                                54

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                  Creazione e importazione di dati
                       Importazione di dati
                         Funzione read.table()



                  Importazione dei dati contenuti in un file ASCII
                                   Si noti che
                                              il nome del file deve essere racchiuso da virgolette doppie;
                                              il nome del file deve contenere l’estensione .txt;
                                              l’argomento header= TRUE specifica che la prima riga del
Corrado Caudek




                                              file contiene il nome delle variabili;
                                              i due argomenti (il nome del file "duncan.txt" e
                                              l’argomento header= TRUE) devono essere separati da
                                              una virgola;
                                              mediante l’operatore “<-” abbiamo creato l’oggetto duncan
                                              che conterrà la matrice dei dati.




                                                                                                            55

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Importazione di dati
                         Funzione read.table()



                   Importazione dei dati contenuti in un file ASCII
                                   Digitando il nome di un oggetto, il contenuto di
                                   quell’oggetto viene stampato nella R-console.
                                   Nel caso presente, digitando duncan otteniamo:
Corrado Caudek




                                   > duncan
                                      type income education prestige
                                   1 prof      62        86       82
                                   2 prof      72        76       83
                                   3 prof      75        92       90
                                   4 prof      55        90       76
                                   5 prof      64        86       90

                                   ...




                                                                                      56

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Importazione di dati
                         Funzione read.table()



                   Importazione dei dati contenuti in un file ASCII
                                   Quello che abbiamo fatto fino ad ora è di creare un oggetto
                                   chiamato duncan che è disponibile nella memoria di
                                   lavoro di R e che contiene le variabili type, income,
Corrado Caudek




                                   education e prestige.
                                   Ovviamente, siamo interessati alle variabili contenute in
                                   duncan e non all’oggetto duncan nel suo complesso.




                                                                                                57

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Importazione di dati
                         Funzione read.table()



                   Dataframe nello spazio di lavoro
                                   Se digitiamo il nome di una variabile, es. education,
                                   notiamo che tale variabile non è presente nello spazio di
                                   lavoro:
Corrado Caudek




                                   > education
                                   Errore: oggetto "education" non trovato

                                   Per rendere disponibili nello spazio di lavoro le variabili
                                   contenute nel data frame duncan usiamo la funzione
                                   attach():
                                   > education
                                    [1] 86 76         92   90   86   84   93 100   87   86   74   98   97
                                   [14] 84 91         34   45   56   44   82 72    55   71   50   23   39
                                   [27] 28 32         22   25   29    7   26 19    15   20   26   28   17
                                   [40] 22 30         25   20   47   32



                                                                                                            58

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Importazione di dati
                         Funzione read.table()



                   Media
                                   A questo punto, education è presente nello spazio di
                                   lavoro e può essere manipolata usando le funzioni di R.
                                   Contiamo il numero di casi:
Corrado Caudek




                                   > length(education)
                                   [1] 45

                                   Calcoliamo la media di education:
                                   > mean(education)
                                   [1] 52.55556




                                                                                             59

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Importazione di dati
                         Funzione read.table()



                   Media
                                   La media è uguale a
                                                                 n
                                                          ¯      i=1 Yi
                                                          Y=
Corrado Caudek




                                                                  n
                                   La somma degli elementi di una variabile si calcola nel
                                   modo seguente:
                                   > sum(education)
                                   [1] 2365

                                   Calcoliamo nuovamente la media di education:
                                   > sum(education)/length(education)
                                   [1] 52.55556




                                                                                             60

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I




                       Creazione e importazione di dati
                          Importazione di dati
                            Funzione read.table()



                       Varianza
                                                                            Pn
                                                                             i=1 (Yi   Y)2
                                                                                       ¯
                                      La varianza di education è   s2
                                                                    Y   =        n 1
                                      Gli scarti dei valori di education dalla media sono:
Corrado Caudek




                                      > education - mean(education)
                                       [1] 33.444444 23.444444 39.444444          37.444444
                                       [5] 33.444444 31.444444 40.444444          47.444444
                                       [9] 34.444444 33.444444 21.444444          45.444444
                                      [13] 44.444444 31.444444 38.444444         -18.555556
                                      [17] -7.555556    3.444444 -8.555556        29.444444
                                      [21] 19.444444    2.444444 18.444444        -2.555556
                                      [25] -29.555556 -13.555556 -24.555556      -20.555556
                                      [29] -30.555556 -27.555556 -23.555556      -45.555556
                                      [33] -26.555556 -33.555556 -37.555556      -32.555556
                                      [37] -26.555556 -24.555556 -35.555556      -30.555556
                                      [41] -22.555556 -27.555556 -32.555556       -5.555556
                                      [45] -20.555556




                                                                                              61

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Importazione di dati
                         Funzione read.table()



                   Varianza
                                   Gli scarti al quadrato sono:
                                   > ( education - mean(education) )^2
                                    [1] 1118.530864 549.641975 1555.864198    1402.086420
Corrado Caudek




                                    [5] 1118.530864 988.753086 1635.753086    2250.975309
                                    [9] 1186.419753 1118.530864 459.864198    2065.197531
                                   [13] 1975.308642 988.753086 1477.975309     344.308642
                                   [17]   57.086420   11.864198   73.197531    866.975309
                                   [21] 378.086420     5.975309 340.197531       6.530864
                                   [25] 873.530864 183.753086 602.975309       422.530864
                                   [29] 933.641975 759.308642 554.864198      2075.308642
                                   [33] 705.197531 1125.975309 1410.419753    1059.864198
                                   [37] 705.197531 602.975309 1264.197531      933.641975
                                   [41] 508.753086 759.308642 1059.864198       30.864198
                                   [45] 422.530864




                                                                                            62

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Importazione di dati
                         Funzione read.table()



                   Varianza
                                   La somma degli scarti al quadrato è:
                                   > sum( ( education - mean(education) )^2 )
                                   [1] 38971.11
Corrado Caudek




                                   Dividendo per n    1 si ottiene la varianza
                                   > sum((education - mean(education))^2)/(length(education) - 1)
                                   [1] 885.707
                                   > var(education)
                                   [1] 885.707




                                                                                                    63

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                       Creazione e importazione di dati
                          Importazione di dati
                            Funzione read.table()



                       Deviazione standard
                                      La deviazione standard è la radice quadrata della varianza:
                                                  Pn
                                                     i=1 (Yi    Y)2
                                                                ¯
                                      s=                  n 1
Corrado Caudek




                                      > sd(education)
                                      [1] 29.76083
                                      > sqrt(var(education))
                                      [1] 29.76083




                                                                                                    64

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Importazione di dati
                         Funzione read.table()



                   summary()
                                   Si noti che informazioni base sulle variabili contenute in un
                                   dataframe si possono ottenere usando la funzione
                                   summary():
Corrado Caudek




                                   > summary(duncan)
                                      type         income        education         prestige
                                    bc :21    Min.    : 7.00   Min.   : 7.00    Min.   : 3.00
                                    prof:18   1st Qu.:21.00    1st Qu.: 26.00   1st Qu.:16.00
                                    wc : 6    Median :42.00    Median : 45.00   Median :41.00
                                              Mean    :41.87   Mean   : 52.56   Mean   :47.69
                                              3rd Qu.:64.00    3rd Qu.: 84.00   3rd Qu.:81.00
                                              Max.    :81.00   Max.   :100.00   Max.   :97.00




                                                                                                   65

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Sequenze
                         Creare una sequenza



                   Sequenze
                                  R offre varie funzioni per per creare vettori che sono
                                  sequenze di numeri.
                                  Per i nostri scopi, utilizzeremmo
Corrado Caudek




                                          l’operatore :
                                          seq()
                                          rep()




                                                                                           66

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Sequenze
                         Creare una sequenza



                   Sequenze
                   Operatore :
                                  L’operatore : consente di generare sequenze di numeri
                                  interi:
Corrado Caudek




                                  > 1:4
                                  [1] 1 2 3 4




                                                                                          67

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Sequenze
                         Creare una sequenza



                   Sequenze
                   Operatore :
                                  Tale operatore può essere usato all’interno delle parentesi
                                  quadre che per specificare i valori dell’indice che individua
Corrado Caudek




                                  gli elementi di un vettore:
                                  > y <- c(2, 3, 5, 1, 9)
                                  > y
                                  [1] 2 3 5 1 9
                                  > y[2]
                                  [1] 3
                                  > y[2:4]
                                  [1] 3 5 1




                                                                                                 68

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Sequenze
                         Creare una sequenza



                   Sequenze
                   Funzione seq()
                                  La funzione seq() consente di generare sequenze di
                                  numeri più complesse:
Corrado Caudek




                                  > seq(2, 8, by=2)
                                  [1] 2 4 6 8
                                  > seq(0, 1, by=.1)
                                   [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
                                  > seq(1, 30, length.out=10)
                                   [1] 1.00 4.22 7.44 10.67 13.89 17.11 20.33
                                   [8] 23.56 26.78 30.00




                                                                                       69

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Sequenze
                         Creare una sequenza



                   Sequenze
                   Funzione rep()
                                  Qui sono forniti alcuni esempi relativi alla funzione rep():
                                  > rep(c(1, 2, 3), each=3)
Corrado Caudek




                                  [1] 1 1 1 2 2 2 3 3 3
                                  > f1 <- factor( rep(c(’a’, ’b’, ’c’), each=3) )
                                  > f1
                                  [1] a a a b b b c c c
                                  Levels: a b c




                                                                                                 70

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Matrici numeriche
                         Creazioni di matrici numeriche



                   Matrici
                                  Per creare una matrice di dati si utilizza il comando
                                  matrix():
                                  > X <- matrix(c(
                                  +    4, 3, 6,
Corrado Caudek




                                  +    1, 5, 2,
                                  +    3, 2, 7,
                                  +    9, 3, 1),
                                  +    ncol=3, byrow=TRUE)
                                  > X
                                        [,1] [,2] [,3]
                                  [1,]     4     3   6
                                  [2,]     1     5   2
                                  [3,]     3     2   7
                                  [4,]     9     3   1

                                           Bisogna specificare nrow o ncol per comunicare a R la
                                           dimensione della matrice; byrow=TRUE significa che la
                                           matrice è riempita seguendo le righe.

                                                                                                  71

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Matrici numeriche
                         Creazioni di matrici numeriche



                   Selezione degli elementi di una matrice
                                  Per estrarre da una matrice un elemento, bisogna
                                  specificarne le due coordinate (ovvero il numero della riga
                                  e il numero della colonna) usando le parentesi quadre:
Corrado Caudek




                                  > X
                                           [,1] [,2] [,3]
                                  [1,]        4    3    6
                                  [2,]        1    5    2
                                  [3,]        3    2    7
                                  [4,]        9    3    1
                                  >
                                  > X[3,1]
                                  [1] 3
                                  > X[4,3]
                                  [1] 1




                                                                                               72

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Matrici numeriche
                         Creazioni di matrici numeriche



                   Selezione degli elementi di una matrice
                                  Se non si indica una delle coordinate, si ottiene un’intera
                                  riga/colonna.
                                  Per selezionare una colonna della matrice basta omettere
Corrado Caudek




                                  l’indice delle righe:
                                  > X
                                           [,1] [,2] [,3]
                                  [1,]        4    3    6
                                  [2,]        1    5    2
                                  [3,]        3    2    7
                                  [4,]        9    3    1
                                  >
                                  > X[,      2]
                                  [1] 3      5 2 3
                                  > X[,      3]
                                  [1] 6      2 7 1




                                                                                                73

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Matrici numeriche
                         Creazioni di matrici numeriche



                   Selezione degli elementi di una matrice
                                  Per selezionare una riga basta omettere l’indice delle
                                  colonne:
                                  > X
Corrado Caudek




                                           [,1] [,2] [,3]
                                  [1,]        4    3    6
                                  [2,]        1    5    2
                                  [3,]        3    2    7
                                  [4,]        9    3    1
                                  >
                                  > X[2, ]
                                  [1] 1 5 2
                                  > X[4, ]
                                  [1] 9 3 1




                                                                                           74

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte I



                   Creazione e importazione di dati
                       Matrici numeriche
                         Creazioni di matrici numeriche



                   Dimensioni della matrice
                                  La funzione dim() indica la dimensione (numero di righe
                                  e numero di colonne) della matrice:
                                  > X
Corrado Caudek




                                           [,1] [,2] [,3]
                                  [1,]        4    3    6
                                  [2,]        1    5    2
                                  [3,]        3    2    7
                                  [4,]        9    3    1
                                  >
                                  > dim(X)
                                  [1] 4 3




                                                                                            75

  Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Un introduzione ad R
                              parte II




                                                           C. White, Part of “ Drops of Rain”, 1967
                       Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II



                                               La potenza è nulla senza controllo
                                               Pubblicità della Pirelli

                                    Sommario




                                                                                77

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II



                                                    La potenza è nulla senza controllo
                                                    Pubblicità della Pirelli

                                    Sommario



 • Nella lezione presente si introduce l’uso di R, facendo alcune semplici
       operazioni




                                                                                     77

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




            Filosofando...
            Ingenui, se fino a questo momento credevate che un buon software
            possa risolvere tutti i vostri problemi di tipo statistico, ricordatevi
            bene che in realtà non esiste un sostituto per l’esperienza e la
            conoscenza di un esperto, anche se l’analisi statistica da eseguire può
            sembrare semplice!

            Né R né qualunque altro sistema statistico vi daranno l’esperienza
            statistica necessaria per usare tecniche sofisticate, o per sapere
            quando i metodi semplici non sono sufficienti.

            In attesa di trovare un adeguato detto in Latino, accontentiamoci di
            uno in Inglese:

            "The data analyst knows more than the computer: failure
            to use that knowledge produces inadequate data analysis."

            “Toller-Confucio”
                                                                                      78


Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




                                    Un Caso:
           l’analisi delle portate dell’Adige a Ponte S. Lorenzo




                                                                   79

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




              Prima di tutto bisogna sapere in quale directory (folder) è R

              #per vedere i files della directory in cui si sta lavorando

              list.files()




                                                                              80

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




                                    81

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




        In seguito e’ senz'altro necessario cambiare directory, lo si puo’ fare con

        setwd("Documents/AAA-Idrologia/LezioniIdrologia/R/
        Dati_Comandi/")
        questo perchè nel mio computer, il file 1990-2005.txt che contiene i dati di portata è
        nella directory: "/home/riccardo/AAA-Idrologia/LezioniIdrologia/R/Dati_Comandi/".




       > f<-"/Users/Matteo/Documents/costruz_idrauliche/6b-
       R/Dati_Comandi/1990-2005.txt"
       > dirname(f)
       [1] "/Users/Matteo/Documents/costruz_idrauliche/6b-
       R/Dati_Comandi"
       > setwd(dirname(f)
                                                                                                 82

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




        Un nuovo

        list.files()
        permette di verificare quali files siano effettivamente presenti nella directory.
        Il file 1990-2005.txt è un file di testo (o file ASCII) e non contiene nessuno dei
        caratteri di controllo tipici di programmi di formattazione dei testi (come MS Word).




                                                                                                83

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




        Un nuovo

        list.files()
        permette di verificare quali files siano effettivamente presenti nella directory.
        Il file 1990-2005.txt è un file di testo (o file ASCII) e non contiene nessuno dei
        caratteri di controllo tipici di programmi di formattazione dei testi (come MS Word).




                                                                                                83

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




        Questo file non è comunque un esempio da seguire. Un file di dati veramente usabile
        deve essere accompagnato dagli appositi metadati che ne specificano i contenuti.      84

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




        Il file può essere letto con vari metodi (per esempio) usando read.table(), ma
        qui, usiamo un comando diverso che si trova nel pacchetto Zoo - Z’s ordered
        obiservations. Innanzitutto bisogna caricare il pacchetto con il comando:

        > library(zoo)

        naturalmente, se nella cartella, library è presente, il pacchetto,
        opportunamente scaricato e decompattato dal CRAN

        > install.packages("zoo")

        Una volta caricata la libreria, per leggere il file basta usare il comando:

        > read.zoo(“1990-2005.txt”) -> prt

        Per avere delle statistiche elementari sui dati, basta usare il comando

        > summary(prt)

                                                                                         85

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




                           > summary(prt)
                                 Index                V1
                            Min.    :   1       Min.   : -1.0
                            1st Qu.:1462        1st Qu.: 109.2
                            Median :2922        Median : 156.4
                            Mean    :2922       Mean   : 188.8
                            3rd Qu.:4382        3rd Qu.: 235.9
                            Max.    :5843       Max.   :1447.7



       summary ha alcuni “side effects” applicato sull’oggetto prt. Infatti produce
       anche le media e i quantili dell’indice (che non ha alcun significato)

       summary(coredata(prt))

       la funzione     coredata(prt) estrae, in effetti, dall’oggetto (zoo()) solo i dati
       “nudi”.                                                                              86

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




        Si può fare di meglio:

        > read.zoo(“1990-2005.txt”, col.names=”Portate”) -> prt

        da anche il nome corretto ai valori nella prima colonna

        > summary(coredata(prt))
               Portate
        Min.   : -1.0
        1st Qu.: 109.2
        Median : 156.4
        Mean   : 188.8
        3rd Qu.: 235.9
        Max.   :1447.7




                                                                  87

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




       Si notino un paio di cose:

       1 - Il valore minimo della portata è -1. Fatto che significa che i dati non sono
       così corretti come si vorrebbe. Il dato -1, quasi sicuramente, è stato scritto per
       significare CHE QUEL GIORNO non sono presenti misure. In R tale
       informazione è marcata con il simbolo NA.

       2 - Si vorrebbe che accanto ai dati, fossero presenti anche le date in cui tali
       misure sono state prese.




                                                                                            88

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II
=


       Risolviamo:

       1 - Il valore minimo della portata è -1. Fatto che significa che i dati non sono
       così corretti come si vorrebbe. Il dato -1, quasi sicuramente, è stato scritto per
       significare CHE QUEL GIORNO non sono presenti misure. In R tale
       informazione è marcata con il simbolo NA.

       > which.min(coredata(prt))
       [1] 3674

       > prt[3674][[1]] <- NA
       > summary(coredata(prt))
           Portate
        Min.   : 34.44
        1st Qu.: 109.20
        Median : 156.40
        Mean   : 188.86
        3rd Qu.: 235.92
        Max.   :1447.70
        NA's   :   1.00

                                                                                            89

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




    2 - Si vorrebbe che accanto ai dati, fossero presenti anche le date in cui tali
    misure sono state prese.

                             1400
                             1200
                             1000
                             800
                       prt

                             600
                             400
                             200
                             0




                                    0   1000   2000    3000   4000   5000   6000

                                                      Index
                                                                                      90

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




    2 - Si vorrebbe che accanto ai dati, fossero presenti anche le date in cui tali
    misure sono state prese.

    Il comando

    > time(prt)

    consente di capire quale sia il tempo nella variabile prt. La risposta,in questo
    caso da una (lunga sequenza) di numeri interi. Significa che non è stata attribuita
    alcuna associazione tra prt e una variabile “tempo”. Infatti il file iniziale
    conteneva una sola colonna con i dati.

    SAPENDO che i dati si riferiscono al periodo compreso tra il 1 Gennaio 1990 e il
    31 Dicembre 2005, si opera nel modo seguente:




                                                                                      91

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




   A - Si construisce una serie di dati di date:

   >seq(from=as.Date("1990-01-02"),to=as.Date("2005-12-31"),by="days")
   ->ymd

   B - Si assegna alla variabile “time” associata a “prt” il valore di ymd:

   > time(prt) <-ymd

   C - Se si disegna ora il grafico delle portate




                                                                              92

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




    C - Se si disegna ora il grafico delle portate:

    >plot(prt,xlab="Anno",ylab="Portate m^3/s")

                                       1400
                                       1200
                                       1000
                       Portate m^3/s

                                       800
                                       600
                                       400
                                       200
                                       0




                                              1990   1995          2000   2005

                                                            Anno


                                                                                 93
Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




     Interpretiamo ora i comandi contenuti in:

     >seq(from=as.Date("1990-01-02"),to=as.Date("2005-12-31"),by="days")
     ->ymd

     - seq() genera una sequenza di dati.
     I suoi campi indicano rispettivamente:

     - from = .... il primo termine della sequenza
     - to = l’ultimo termine della serie di dati
     - by = lo “step”, ovvero l’intervallo che separa un dato dal successivo.




                                                                                94

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




     Interpretiamo ora i comandi contenuti in:

     >seq(from=as.Date("1990-01-02"),to=as.Date("2005-12-31"),by="days")
     ->ymd

     - seq() genera una sequenza di dati.
     I suoi campi indicano rispettivamente:

     - from = .... il primo termine della sequenza
     - to = l’ultimo termine della serie di dati
     - by = lo “step”, ovvero l’intervallo che separa un dato dal successivo.


     NOTA: SI OSSERVI CHE QUESTO COMANDO E’ UNA DIMOSTRAZIONE DELLA
     STRUTTURA OBJECT ORIENTED (ORIENTATA AGLI OGGETTI) DEL LINGUAGGIO
     R. INIZIO, FINE DELLA SEQUENZA SONO INFATTI DICHIARATI COME OGGETTI
     “DATA” E, DI CONSEGUENZA ANCHE LO STEP E’ UNA UNITA’ DI TEMPO E LA
     SERIE RISULTANTE E’ UNA SERIE DI DATE. SE seq() fosse stata applicata a dei
     numeri, la sequanza generata sarebbe risultata una sequenza di numeri.
                                                                                   94

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II



     Vogliamo ora disegnare i dati relativi ad un solo anno. R ha il comando window()
     che permette di selezionare una “finestra” temporale.

     > data.1990 <-
     window(prt,start=as.Date("1990-01-02"),end=as.Date("1990-12-01"))
     > plot(data.1990,xlab="Anno",ylab="Portate m^3/s")

                                                  400
                                                  300
                                  Portate m^3/s

                                                  200
                                                  100




                                                        Jan   Mar   May      Jul   Sep   Nov

                                                                          Anno                 95

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




    Istogramma delle portate tra il 1990 e il 2005:

                                                   Histogram of coredata(prt)




                                        2500
                                        2000
                                        1500
                            Frequency

                                        1000
                                        500
                                        0




                                               0     500                   1000   1500

                                                           coredata(prt)
                                                                                         96

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




    Istogramma delle portate tra il 1990 e il 2005:

    > hist(coredata(prt),breaks=20)
                                                              Histogram of coredata(prt)




                                                   1500
                                                   1000
                                       Frequency

                                                   500
                                                   0




                                                          0      500                   1000   1500

                                                                       coredata(prt)                 97

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




  Istogramma delle portate tra il 1990 e il 2005:

  > hist(coredata(prt),breaks=80)
                                                                 Histogram of coredata(prt)




                                                600
                                                500
                                                400
                                    Frequency

                                                300
                                                200
                                                100
                                                0




                                                      0   200   400    600      800      1000   1200   1400

                                                                         coredata(prt)
                                                                                                              98

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




    BoxPlot delle portate tra il 1990 e il 2005

    > as.factor(format(ymd,format="%Y"))->fyear
    >boxplot(coredata(prt)~fyear)




                                           1400
                                           1200
                                           1000
                                           800
                                           600
                                           400
                                           200
                                           0




                                                  1990   1992   1994   1996   1998   2000   2002   2004

                                                                                                          99

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




                                            Un altro Caso:
                 la lettura e l’analisi di dati provenienti dagli annali idrologici




                                                                                      100

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




Quello che ci proponiano è di leggere la tabella di dati contenuta nel file esterno

"PluviometriaPaperopoli. txt"

Assunto di avere istallato R e di averlo funzionante sul proprio computer, eseguiamo
allora i comandi:




                                                                                      101

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




           #per vedere i files della directory in cui si sta lavorando

           list.files()




                                                                         102

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




  Il comando per leggere il file è

  data = read.table("PluviometriaPaperopoli.txt",header=TRUE,skip=1)

  Nel caso in cui si voglia considerare -1 come un NA

  data =
  read.table("PluviometriaPaperopoli.txt",header=TRUE,skip=1,na.string
  s=-1)

  Per ottenere una completa spiegazione della sintassi del comando, si può usare:

  ?read.table()

  Il risultato è immagazzinato nella variabile "data".




                                                                                    103

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




                                    104

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




        Esistono altri comandi per leggere informazioni da files, per esempio "scan()".
        read.table() è tuttavia semplice e conveniente;
        "data" è un oggetto che, in R, è chiamato "data frame" o "table frame", che corrisponde
        ad una lista (list) di oggetti numerici e non numerici.
        Tutti i comandi o le parole chiave di R di cui sopra possono essere interrogati con

        ?comando

        L'oggetto "data" ha una struttura complessa e i suoi elementi possono essere estratti
        come data[1], data[2], ecc. Questi pero' non sono vettori, ma a loro volta dei
        data.frame. Per estrarre il vettore bisogna fare data1[[1]]. Infatti:

        is.vector(data[[1]])
        dà TRUE.




                                                                                             105

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




    Osservando i dati contenuti in data, si vede che alcuni anni sono ripetuti. Questi
    elementi vanno cancellati nelle successive analisi (gli elementi da cancellare sno
    diversi da un intervallo temporale ad un altro). R è dotato di un editor dei dati che si
    può invocare con il comando

    edit(data)
    o, nella maggior parte delle interfaccie ad R usando l'opportuno menu' a tendina.




                                                                                               106

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




                                    107

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
Una Introduzione ad R: parte II




              Ci sono righe ripetute? Proviamo a controllare...

              as.factor() mi dice quante sono le “etichette” dei dati di un vettore, length mi dice
              quanti sono i dati totali in un vettore

             > as.factor(data[,1])
              [1] 1925 1925 1925 1928 1928 1929 1930 1930 1931                     1932
             [11] 1934 1935 1936 1937 1938 1939 1940 1941 1942                     1943
             [21] 1944 1950 1951 1952 1955 1955 1956 1957 1958                     1959
             [31] 1959 1960 1960 1961 1961 1962 1963 1964 1965                     1966
             [41] 1967 1968 1969 1971 1972 1973 1974 1975 1976                     1977
             [51] 1978 1979 1980 1984 1985 1986 1987 1988
             50 Levels: 1925 1928 1929 1930 1931 1932 1934 ...                     1988

             > length(data[,1])
             [1] 58


            Ci sono dunque 8 righe che sono ripetute.
            Quali sono?

                                                                                                      108

Riccardo Rigon, Matteo Dall’Amico

Tuesday, March 6, 12
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r
9   introduzione r

More Related Content

What's hot

Operators and Control Statements in Python
Operators and Control Statements in PythonOperators and Control Statements in Python
Operators and Control Statements in PythonRajeswariA8
 
言語の設計判断
言語の設計判断言語の設計判断
言語の設計判断nishio
 
Business Intelligence: Multidimensional Analysis
Business Intelligence: Multidimensional AnalysisBusiness Intelligence: Multidimensional Analysis
Business Intelligence: Multidimensional AnalysisMichael Lamont
 
Domain Modeling Made Functional (KanDDDinsky 2019)
Domain Modeling Made Functional (KanDDDinsky 2019)Domain Modeling Made Functional (KanDDDinsky 2019)
Domain Modeling Made Functional (KanDDDinsky 2019)Scott Wlaschin
 
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...Netwalker lab kapper
 
White Paper - The Business Case For Business Intelligence
White Paper -  The Business Case For Business IntelligenceWhite Paper -  The Business Case For Business Intelligence
White Paper - The Business Case For Business IntelligenceDavid Walker
 
Overview of the .Net Collection Framework and Immutable Collections
Overview of the .Net Collection Framework and Immutable CollectionsOverview of the .Net Collection Framework and Immutable Collections
Overview of the .Net Collection Framework and Immutable CollectionsYoshifumi Kawai
 
Binary Search Tree Traversal.ppt
Binary Search Tree Traversal.pptBinary Search Tree Traversal.ppt
Binary Search Tree Traversal.pptRiannel Tecson
 
Y DNA Surname Projects - Some Fresh Ideas
 Y DNA Surname Projects - Some Fresh Ideas Y DNA Surname Projects - Some Fresh Ideas
Y DNA Surname Projects - Some Fresh IdeasFamily Tree DNA
 
"PyTorch Deep Learning Framework: Status and Directions," a Presentation from...
"PyTorch Deep Learning Framework: Status and Directions," a Presentation from..."PyTorch Deep Learning Framework: Status and Directions," a Presentation from...
"PyTorch Deep Learning Framework: Status and Directions," a Presentation from...Edge AI and Vision Alliance
 
pandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for Pythonpandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for PythonWes McKinney
 
Introduction to Python Pandas for Data Analytics
Introduction to Python Pandas for Data AnalyticsIntroduction to Python Pandas for Data Analytics
Introduction to Python Pandas for Data AnalyticsPhoenix
 
The Art of Unit Testing - Towards a Testable Design
The Art of Unit Testing - Towards a Testable DesignThe Art of Unit Testing - Towards a Testable Design
The Art of Unit Testing - Towards a Testable DesignVictor Rentea
 
17. Trees and Graphs
17. Trees and Graphs17. Trees and Graphs
17. Trees and GraphsIntro C# Book
 
PyGame Tutorial | PyGame Python Tutorial For Beginners | Python Certification...
PyGame Tutorial | PyGame Python Tutorial For Beginners | Python Certification...PyGame Tutorial | PyGame Python Tutorial For Beginners | Python Certification...
PyGame Tutorial | PyGame Python Tutorial For Beginners | Python Certification...Edureka!
 

What's hot (20)

Operators and Control Statements in Python
Operators and Control Statements in PythonOperators and Control Statements in Python
Operators and Control Statements in Python
 
2.5 dfs & bfs
2.5 dfs & bfs2.5 dfs & bfs
2.5 dfs & bfs
 
言語の設計判断
言語の設計判断言語の設計判断
言語の設計判断
 
Business Intelligence: Multidimensional Analysis
Business Intelligence: Multidimensional AnalysisBusiness Intelligence: Multidimensional Analysis
Business Intelligence: Multidimensional Analysis
 
Domain Modeling Made Functional (KanDDDinsky 2019)
Domain Modeling Made Functional (KanDDDinsky 2019)Domain Modeling Made Functional (KanDDDinsky 2019)
Domain Modeling Made Functional (KanDDDinsky 2019)
 
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...
Android タブレット、スマートウォッチにLinuxを入れて色々と遊んでみよう Hacking of Android Tablet and Smart...
 
White Paper - The Business Case For Business Intelligence
White Paper -  The Business Case For Business IntelligenceWhite Paper -  The Business Case For Business Intelligence
White Paper - The Business Case For Business Intelligence
 
Overview of the .Net Collection Framework and Immutable Collections
Overview of the .Net Collection Framework and Immutable CollectionsOverview of the .Net Collection Framework and Immutable Collections
Overview of the .Net Collection Framework and Immutable Collections
 
Binary Search Tree Traversal.ppt
Binary Search Tree Traversal.pptBinary Search Tree Traversal.ppt
Binary Search Tree Traversal.ppt
 
Data Wrangling
Data WranglingData Wrangling
Data Wrangling
 
Y DNA Surname Projects - Some Fresh Ideas
 Y DNA Surname Projects - Some Fresh Ideas Y DNA Surname Projects - Some Fresh Ideas
Y DNA Surname Projects - Some Fresh Ideas
 
Unit 1
Unit 1Unit 1
Unit 1
 
"PyTorch Deep Learning Framework: Status and Directions," a Presentation from...
"PyTorch Deep Learning Framework: Status and Directions," a Presentation from..."PyTorch Deep Learning Framework: Status and Directions," a Presentation from...
"PyTorch Deep Learning Framework: Status and Directions," a Presentation from...
 
pandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for Pythonpandas: Powerful data analysis tools for Python
pandas: Powerful data analysis tools for Python
 
Big Data Analytics (1).ppt
Big Data Analytics (1).pptBig Data Analytics (1).ppt
Big Data Analytics (1).ppt
 
Introduction to Python Pandas for Data Analytics
Introduction to Python Pandas for Data AnalyticsIntroduction to Python Pandas for Data Analytics
Introduction to Python Pandas for Data Analytics
 
The Art of Unit Testing - Towards a Testable Design
The Art of Unit Testing - Towards a Testable DesignThe Art of Unit Testing - Towards a Testable Design
The Art of Unit Testing - Towards a Testable Design
 
17. Trees and Graphs
17. Trees and Graphs17. Trees and Graphs
17. Trees and Graphs
 
PyGame Tutorial | PyGame Python Tutorial For Beginners | Python Certification...
PyGame Tutorial | PyGame Python Tutorial For Beginners | Python Certification...PyGame Tutorial | PyGame Python Tutorial For Beginners | Python Certification...
PyGame Tutorial | PyGame Python Tutorial For Beginners | Python Certification...
 
Applicative Functor
Applicative FunctorApplicative Functor
Applicative Functor
 

Viewers also liked

7 inferenza statisticae-statisticadescrittiva
7 inferenza statisticae-statisticadescrittiva7 inferenza statisticae-statisticadescrittiva
7 inferenza statisticae-statisticadescrittivaRiccardo Rigon
 
Laboratorio Probabilidad 1/3
Laboratorio Probabilidad 1/3Laboratorio Probabilidad 1/3
Laboratorio Probabilidad 1/3cbpresentaciones
 
Linguaggio R, principi e concetti
Linguaggio R, principi e concettiLinguaggio R, principi e concetti
Linguaggio R, principi e concettiVincenzo De Maio
 
Elisa Teodoro, Clase 5, Funciones
Elisa Teodoro, Clase 5, FuncionesElisa Teodoro, Clase 5, Funciones
Elisa Teodoro, Clase 5, FuncionesInfoUdo.com.ve
 
Ruby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoRuby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoYulgrecia2011
 
Scheduling power-aware abstract
Scheduling power-aware abstractScheduling power-aware abstract
Scheduling power-aware abstractVincenzo De Maio
 
Elisa Teodoro, Aplicacion de Derivadas, Clase 2
Elisa Teodoro, Aplicacion de Derivadas, Clase 2Elisa Teodoro, Aplicacion de Derivadas, Clase 2
Elisa Teodoro, Aplicacion de Derivadas, Clase 2InfoUdo.com.ve
 
Introduzione a R
Introduzione a RIntroduzione a R
Introduzione a RMCalderisi
 
R Workshop for Beginners
R Workshop for BeginnersR Workshop for Beginners
R Workshop for BeginnersMetamarkets
 
Introduction to R by David Lucy Cap 12-16
Introduction to R by David Lucy Cap 12-16Introduction to R by David Lucy Cap 12-16
Introduction to R by David Lucy Cap 12-16Luis Pons
 
Derivazioni opere dipresa
Derivazioni opere dipresaDerivazioni opere dipresa
Derivazioni opere dipresaRiccardo Rigon
 
Horton Machine - GIS spatial Analysis Tool - In Italian
Horton Machine - GIS spatial Analysis Tool - In ItalianHorton Machine - GIS spatial Analysis Tool - In Italian
Horton Machine - GIS spatial Analysis Tool - In ItalianRiccardo Rigon
 
ECUACIONES DIFERENCIALES CON DERIVE
ECUACIONES DIFERENCIALES CON DERIVEECUACIONES DIFERENCIALES CON DERIVE
ECUACIONES DIFERENCIALES CON DERIVEJorge Paz
 

Viewers also liked (20)

9 precipitazioni ci
9   precipitazioni ci9   precipitazioni ci
9 precipitazioni ci
 
7 inferenza statisticae-statisticadescrittiva
7 inferenza statisticae-statisticadescrittiva7 inferenza statisticae-statisticadescrittiva
7 inferenza statisticae-statisticadescrittiva
 
Water&life
Water&lifeWater&life
Water&life
 
Laboratorio Probabilidad 1/3
Laboratorio Probabilidad 1/3Laboratorio Probabilidad 1/3
Laboratorio Probabilidad 1/3
 
Linguaggio R, principi e concetti
Linguaggio R, principi e concettiLinguaggio R, principi e concetti
Linguaggio R, principi e concetti
 
R_note_ODE_ver1.0
R_note_ODE_ver1.0R_note_ODE_ver1.0
R_note_ODE_ver1.0
 
Elisa Teodoro, Clase 5, Funciones
Elisa Teodoro, Clase 5, FuncionesElisa Teodoro, Clase 5, Funciones
Elisa Teodoro, Clase 5, Funciones
 
Ruby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoRuby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretado
 
Scheduling power-aware abstract
Scheduling power-aware abstractScheduling power-aware abstract
Scheduling power-aware abstract
 
Elisa Teodoro, Aplicacion de Derivadas, Clase 2
Elisa Teodoro, Aplicacion de Derivadas, Clase 2Elisa Teodoro, Aplicacion de Derivadas, Clase 2
Elisa Teodoro, Aplicacion de Derivadas, Clase 2
 
Introduzione a R
Introduzione a RIntroduzione a R
Introduzione a R
 
Programacion en R
Programacion en RProgramacion en R
Programacion en R
 
R Workshop for Beginners
R Workshop for BeginnersR Workshop for Beginners
R Workshop for Beginners
 
Abstract tesi
Abstract tesiAbstract tesi
Abstract tesi
 
Introduction to R by David Lucy Cap 12-16
Introduction to R by David Lucy Cap 12-16Introduction to R by David Lucy Cap 12-16
Introduction to R by David Lucy Cap 12-16
 
8 iuh theory-ci
8 iuh theory-ci8 iuh theory-ci
8 iuh theory-ci
 
Derivazioni opere dipresa
Derivazioni opere dipresaDerivazioni opere dipresa
Derivazioni opere dipresa
 
Horton Machine - GIS spatial Analysis Tool - In Italian
Horton Machine - GIS spatial Analysis Tool - In ItalianHorton Machine - GIS spatial Analysis Tool - In Italian
Horton Machine - GIS spatial Analysis Tool - In Italian
 
8.6 random sampling
8.6   random sampling8.6   random sampling
8.6 random sampling
 
ECUACIONES DIFERENCIALES CON DERIVE
ECUACIONES DIFERENCIALES CON DERIVEECUACIONES DIFERENCIALES CON DERIVE
ECUACIONES DIFERENCIALES CON DERIVE
 

Similar to 9 introduzione r

Una bReve intRoduzione al linguaggio R
Una bReve intRoduzione al linguaggio RUna bReve intRoduzione al linguaggio R
Una bReve intRoduzione al linguaggio RGiuseppe Calamita
 
Introduzione ai Big Data e alla scienza dei dati - I formati dati
Introduzione ai Big Data e alla scienza dei dati - I formati datiIntroduzione ai Big Data e alla scienza dei dati - I formati dati
Introduzione ai Big Data e alla scienza dei dati - I formati datiVincenzo Manzoni
 
Chemiometria e R
Chemiometria e RChemiometria e R
Chemiometria e RMCalderisi
 
Workshop di Chemiometria 2011 - Abano Laziale
Workshop di Chemiometria 2011 - Abano LazialeWorkshop di Chemiometria 2011 - Abano Laziale
Workshop di Chemiometria 2011 - Abano LazialeMarco Calderisi
 
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data AnalysisIntroduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data AnalysisVincenzo Manzoni
 
InsulaR: una comunità cagliaritana di utenti di R
InsulaR: una comunità cagliaritana di utenti di RInsulaR: una comunità cagliaritana di utenti di R
InsulaR: una comunità cagliaritana di utenti di RDavide Massidda
 
InsulaR: un gruppo cagliaritano di utenti di R (Davide Massidda)
InsulaR: un gruppo cagliaritano di utenti di R (Davide Massidda)InsulaR: un gruppo cagliaritano di utenti di R (Davide Massidda)
InsulaR: un gruppo cagliaritano di utenti di R (Davide Massidda)Francesco Cabiddu
 
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016Miriade Spa
 
Le tecnologie dei Big Data
Le tecnologie dei Big DataLe tecnologie dei Big Data
Le tecnologie dei Big DataVincenzo Manzoni
 
Analytics 3.0 - Breve storia della Data Analysis ad oggi
Analytics 3.0 - Breve storia della Data Analysis ad oggiAnalytics 3.0 - Breve storia della Data Analysis ad oggi
Analytics 3.0 - Breve storia della Data Analysis ad oggiFilippo Ragazzo
 
S. Piunno, Piattaforma Digitale Nazionale Dati - Sessione come l'accesso ai m...
S. Piunno, Piattaforma Digitale Nazionale Dati - Sessione come l'accesso ai m...S. Piunno, Piattaforma Digitale Nazionale Dati - Sessione come l'accesso ai m...
S. Piunno, Piattaforma Digitale Nazionale Dati - Sessione come l'accesso ai m...Istituto nazionale di statistica
 
Come la PDND supporta il pattern Data Hub: il caso di ANAC (Stefano Fuligni, ...
Come la PDND supporta il pattern Data Hub: il caso di ANAC (Stefano Fuligni, ...Come la PDND supporta il pattern Data Hub: il caso di ANAC (Stefano Fuligni, ...
Come la PDND supporta il pattern Data Hub: il caso di ANAC (Stefano Fuligni, ...Data Driven Innovation
 
Scaling the open data concept to 13000 public administrations (Andrea Carlini...
Scaling the open data concept to 13000 public administrations (Andrea Carlini...Scaling the open data concept to 13000 public administrations (Andrea Carlini...
Scaling the open data concept to 13000 public administrations (Andrea Carlini...Data Driven Innovation
 
Workshop sul Free Software Ordine degli Ingegneri
Workshop sul Free Software Ordine degli IngegneriWorkshop sul Free Software Ordine degli Ingegneri
Workshop sul Free Software Ordine degli IngegneriAngelo Giordano
 
VALUTAZIONE COMPARATIVA E CRITERI PER LA SCELTA DI STRUMENTI OPEN SOURCE DI B...
VALUTAZIONE COMPARATIVA E CRITERI PER LA SCELTA DI STRUMENTI OPEN SOURCE DI B...VALUTAZIONE COMPARATIVA E CRITERI PER LA SCELTA DI STRUMENTI OPEN SOURCE DI B...
VALUTAZIONE COMPARATIVA E CRITERI PER LA SCELTA DI STRUMENTI OPEN SOURCE DI B...Tomaž Ceh
 
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...Tecniche di raccomandazione automatica per la sottomissione di articoli scien...
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...GiulioPic
 

Similar to 9 introduzione r (20)

G. Barcaroli - Introduzione a R
G. Barcaroli - Introduzione a RG. Barcaroli - Introduzione a R
G. Barcaroli - Introduzione a R
 
Una bReve intRoduzione al linguaggio R
Una bReve intRoduzione al linguaggio RUna bReve intRoduzione al linguaggio R
Una bReve intRoduzione al linguaggio R
 
Introduzione ai Big Data e alla scienza dei dati - I formati dati
Introduzione ai Big Data e alla scienza dei dati - I formati datiIntroduzione ai Big Data e alla scienza dei dati - I formati dati
Introduzione ai Big Data e alla scienza dei dati - I formati dati
 
Chemiometria e R
Chemiometria e RChemiometria e R
Chemiometria e R
 
Workshop di Chemiometria 2011 - Abano Laziale
Workshop di Chemiometria 2011 - Abano LazialeWorkshop di Chemiometria 2011 - Abano Laziale
Workshop di Chemiometria 2011 - Abano Laziale
 
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data AnalysisIntroduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
 
InsulaR: una comunità cagliaritana di utenti di R
InsulaR: una comunità cagliaritana di utenti di RInsulaR: una comunità cagliaritana di utenti di R
InsulaR: una comunità cagliaritana di utenti di R
 
InsulaR: un gruppo cagliaritano di utenti di R (Davide Massidda)
InsulaR: un gruppo cagliaritano di utenti di R (Davide Massidda)InsulaR: un gruppo cagliaritano di utenti di R (Davide Massidda)
InsulaR: un gruppo cagliaritano di utenti di R (Davide Massidda)
 
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
 
Le tecnologie dei Big Data
Le tecnologie dei Big DataLe tecnologie dei Big Data
Le tecnologie dei Big Data
 
Open Data - Data Journalism
Open Data - Data JournalismOpen Data - Data Journalism
Open Data - Data Journalism
 
Analytics 3.0 - Breve storia della Data Analysis ad oggi
Analytics 3.0 - Breve storia della Data Analysis ad oggiAnalytics 3.0 - Breve storia della Data Analysis ad oggi
Analytics 3.0 - Breve storia della Data Analysis ad oggi
 
S. Piunno, Piattaforma Digitale Nazionale Dati - Sessione come l'accesso ai m...
S. Piunno, Piattaforma Digitale Nazionale Dati - Sessione come l'accesso ai m...S. Piunno, Piattaforma Digitale Nazionale Dati - Sessione come l'accesso ai m...
S. Piunno, Piattaforma Digitale Nazionale Dati - Sessione come l'accesso ai m...
 
Game ratings predictor
Game ratings predictorGame ratings predictor
Game ratings predictor
 
Come la PDND supporta il pattern Data Hub: il caso di ANAC (Stefano Fuligni, ...
Come la PDND supporta il pattern Data Hub: il caso di ANAC (Stefano Fuligni, ...Come la PDND supporta il pattern Data Hub: il caso di ANAC (Stefano Fuligni, ...
Come la PDND supporta il pattern Data Hub: il caso di ANAC (Stefano Fuligni, ...
 
Scaling the open data concept to 13000 public administrations (Andrea Carlini...
Scaling the open data concept to 13000 public administrations (Andrea Carlini...Scaling the open data concept to 13000 public administrations (Andrea Carlini...
Scaling the open data concept to 13000 public administrations (Andrea Carlini...
 
Giancarlo Ronci IT
Giancarlo Ronci ITGiancarlo Ronci IT
Giancarlo Ronci IT
 
Workshop sul Free Software Ordine degli Ingegneri
Workshop sul Free Software Ordine degli IngegneriWorkshop sul Free Software Ordine degli Ingegneri
Workshop sul Free Software Ordine degli Ingegneri
 
VALUTAZIONE COMPARATIVA E CRITERI PER LA SCELTA DI STRUMENTI OPEN SOURCE DI B...
VALUTAZIONE COMPARATIVA E CRITERI PER LA SCELTA DI STRUMENTI OPEN SOURCE DI B...VALUTAZIONE COMPARATIVA E CRITERI PER LA SCELTA DI STRUMENTI OPEN SOURCE DI B...
VALUTAZIONE COMPARATIVA E CRITERI PER LA SCELTA DI STRUMENTI OPEN SOURCE DI B...
 
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...Tecniche di raccomandazione automatica per la sottomissione di articoli scien...
Tecniche di raccomandazione automatica per la sottomissione di articoli scien...
 

More from Riccardo Rigon

12.13 acqua neisuoli-watertableequations
12.13 acqua neisuoli-watertableequations12.13 acqua neisuoli-watertableequations
12.13 acqua neisuoli-watertableequationsRiccardo Rigon
 
12.1b tessitura e struttura
12.1b   tessitura e struttura12.1b   tessitura e struttura
12.1b tessitura e strutturaRiccardo Rigon
 
12.1a acqua neisuoli-suoli
12.1a acqua neisuoli-suoli12.1a acqua neisuoli-suoli
12.1a acqua neisuoli-suoliRiccardo Rigon
 
4 hydrology geostatistics-part_2
4 hydrology geostatistics-part_2 4 hydrology geostatistics-part_2
4 hydrology geostatistics-part_2 Riccardo Rigon
 
3 alberti-seconda parte - About Spatial Correlation
3 alberti-seconda parte - About Spatial Correlation3 alberti-seconda parte - About Spatial Correlation
3 alberti-seconda parte - About Spatial CorrelationRiccardo Rigon
 
1 alberti-prima parte - Metodi di Interpolazione
1 alberti-prima parte - Metodi di Interpolazione1 alberti-prima parte - Metodi di Interpolazione
1 alberti-prima parte - Metodi di InterpolazioneRiccardo Rigon
 
Introduzione all'uso della Console di OMS e di QGIS (per le analisi del corso...
Introduzione all'uso della Console di OMS e di QGIS (per le analisi del corso...Introduzione all'uso della Console di OMS e di QGIS (per le analisi del corso...
Introduzione all'uso della Console di OMS e di QGIS (per le analisi del corso...Riccardo Rigon
 
6 l-radiation-table ofsymbols
6 l-radiation-table ofsymbols6 l-radiation-table ofsymbols
6 l-radiation-table ofsymbolsRiccardo Rigon
 
6 i-longwave radiation
6 i-longwave radiation6 i-longwave radiation
6 i-longwave radiationRiccardo Rigon
 
6 h-coping withterrain
6 h-coping withterrain6 h-coping withterrain
6 h-coping withterrainRiccardo Rigon
 
6 g-considering clouds
6 g-considering clouds6 g-considering clouds
6 g-considering cloudsRiccardo Rigon
 
6 f-radiation-absorptions
6 f-radiation-absorptions6 f-radiation-absorptions
6 f-radiation-absorptionsRiccardo Rigon
 
6 e-coping withearthsurface
6 e-coping withearthsurface6 e-coping withearthsurface
6 e-coping withearthsurfaceRiccardo Rigon
 
6 d-radiation-from sun2earth
6 d-radiation-from sun2earth6 d-radiation-from sun2earth
6 d-radiation-from sun2earthRiccardo Rigon
 
6 c-radiation-stefan boltzman
6 c-radiation-stefan boltzman6 c-radiation-stefan boltzman
6 c-radiation-stefan boltzmanRiccardo Rigon
 

More from Riccardo Rigon (20)

10 Idrologia & Clima
10 Idrologia & Clima10 Idrologia & Clima
10 Idrologia & Clima
 
12.13 acqua neisuoli-watertableequations
12.13 acqua neisuoli-watertableequations12.13 acqua neisuoli-watertableequations
12.13 acqua neisuoli-watertableequations
 
12.6b just ks
12.6b just ks12.6b just ks
12.6b just ks
 
12.6 acquanei suoli-k
12.6 acquanei suoli-k12.6 acquanei suoli-k
12.6 acquanei suoli-k
 
12.1b tessitura e struttura
12.1b   tessitura e struttura12.1b   tessitura e struttura
12.1b tessitura e struttura
 
12.1a acqua neisuoli-suoli
12.1a acqua neisuoli-suoli12.1a acqua neisuoli-suoli
12.1a acqua neisuoli-suoli
 
4 hydrology geostatistics-part_2
4 hydrology geostatistics-part_2 4 hydrology geostatistics-part_2
4 hydrology geostatistics-part_2
 
3 alberti-seconda parte - About Spatial Correlation
3 alberti-seconda parte - About Spatial Correlation3 alberti-seconda parte - About Spatial Correlation
3 alberti-seconda parte - About Spatial Correlation
 
2 - Simple Kriging
2 - Simple Kriging2 - Simple Kriging
2 - Simple Kriging
 
1 alberti-prima parte - Metodi di Interpolazione
1 alberti-prima parte - Metodi di Interpolazione1 alberti-prima parte - Metodi di Interpolazione
1 alberti-prima parte - Metodi di Interpolazione
 
Introduzione all'uso della Console di OMS e di QGIS (per le analisi del corso...
Introduzione all'uso della Console di OMS e di QGIS (per le analisi del corso...Introduzione all'uso della Console di OMS e di QGIS (per le analisi del corso...
Introduzione all'uso della Console di OMS e di QGIS (per le analisi del corso...
 
6 l-radiation-table ofsymbols
6 l-radiation-table ofsymbols6 l-radiation-table ofsymbols
6 l-radiation-table ofsymbols
 
6 i-longwave radiation
6 i-longwave radiation6 i-longwave radiation
6 i-longwave radiation
 
6 h-coping withterrain
6 h-coping withterrain6 h-coping withterrain
6 h-coping withterrain
 
6 g-considering clouds
6 g-considering clouds6 g-considering clouds
6 g-considering clouds
 
6 f-radiation-absorptions
6 f-radiation-absorptions6 f-radiation-absorptions
6 f-radiation-absorptions
 
6 e-coping withearthsurface
6 e-coping withearthsurface6 e-coping withearthsurface
6 e-coping withearthsurface
 
6 d-radiation-from sun2earth
6 d-radiation-from sun2earth6 d-radiation-from sun2earth
6 d-radiation-from sun2earth
 
6 c-radiation-stefan boltzman
6 c-radiation-stefan boltzman6 c-radiation-stefan boltzman
6 c-radiation-stefan boltzman
 
6 b-radiation-the sun
6 b-radiation-the sun6 b-radiation-the sun
6 b-radiation-the sun
 

9 introduzione r

  • 1. Una introduzione ad R parte I C. White, Part of “ Drops of Rain”, 1967 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 2. “La potenza è nulla senza controllo” Pubblicità Pirelli Tuesday, March 6, 12
  • 3. Una Introduzione ad R: parte I Sommario •R: un ambiente open source per l’analisi statistica dei dati •Le funzionalità dell’ambiente R •Creazione e importazione dei dati Tratta dalle presentazioni di Corrado Caudek della facoltà di psicologia dell’università di Firenze nel corso di Tecniche di Ricerca Psicologica e di Analisi dei Dati, A.A. 2007/2008 3 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 4. Una Introduzione ad R: parte I R: un ambiente opensource per l’analisi statistica dei dati Che cos’è R? Che cos’è R? R è un software che permette di elaborare dati, eseguire calcoli ed effettuare rappresantazioni grafiche. E’ distribuito gratuitamente ed disponibile per diversi Corrado Caudek sistemi operativi: Windows, MacOS, Unix, Linux. Sul sito http://www.r-project.org è possibile scaricare, oltre che il programma base, anche una serie di moduli aggiuntivi (packages) e un’ampia manualistica. 4 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 5. Una Introduzione ad R: parte I R: un ambiente opensource per l’analisi statistica dei dati Installazione Installazione Corrado Caudek 5 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 6. Una Introduzione ad R: parte II 6 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 7. Una Introduzione ad R: parte I R: un ambiente opensource per l’analisi statistica dei dati Installazione Installazione Corrado Caudek 7 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 8. Una Introduzione ad R: parte I R: un ambiente opensource per l’analisi statistica dei dati Installazione Installazione Corrado Caudek 8 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 9. Una Introduzione ad R: parte I R: un ambiente opensource per l’analisi statistica dei dati Installazione Pacchetti Pacchetti Il modulo base offre gli strumenti fondamentali per l’analisi statistica. Questo modulo base può essere integrato da una serie di Corrado Caudek altre librerie addizionali che possono essere installate dall’utente dopo averle scaricate dal sito succitato. Sul sito del The Comprehensive R Archive Network - CRAN è possibile scaricare un grande numero di packages che spaziano nei più disparati campi della statistica applicata. 9 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 10. Una Introduzione ad R: parte I R: un ambiente opensource per l’analisi statistica dei dati Installazione Pacchetti Pacchetti Corrado Caudek 10 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 11. Una Introduzione ad R: parte I R: un ambiente opensource per l’analisi statistica dei dati Interagire con R La R-console Interfaccia CUI Come indicato dall’esempio precedente, R utilizza un’interfaccia utente a carattere (CUI) in cui le funzioni e le istruzioni vengono immesse da una linea di comando. Corrado Caudek Esiste un’interfacca GUI chiamata R Commander che è equivalente a quella dei software commerciali. Per motivi di ordine didattico, in questo corso impareremo ad usare direttamente le funzioni di R attraverso la R-console, senza ricorrere all’interfaccia grafica. 11 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 12. Una Introduzione ad R: parte I R: un ambiente opensource per l’analisi statistica dei dati Interagire con R La R-console Perché R? C’è un preciso motivo didattico per decidere di usare R senza l’interfaccia grafica: è inutile e dannoso svolgere una qualunque analisi dei dati Corrado Caudek senza capire che cosa si sta facendo; l’utilizzo di R aiuta a rendere esplicite le operazioni che stanno alla base delle analisi statistiche e quindi rappresenta un efficace strumento didattico. 12 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 13. Una Introduzione ad R: parte I R: un ambiente opensource per l’analisi statistica dei dati Interagire con R La R-console Perché R? Al di là dei suoi vantaggi didattici, il software R fornisce uno strumento di lavoro professionale che consente di svolgere la grande maggioranza delle analisi dei dati psicologici; Corrado Caudek consente di svolgere con semplicità la visualizzazione e l’analisi esplorativa dei dati – due operazioni che sono specialmente importanti per l’analisi dei dati psicologici; è corredato da un’ampia documentazione; è gratuito. •si possono lanciare script 13 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 14. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Sommario Elementi di sintassi Iniziare e chiudere una sessione di R Aritmetica Corrado Caudek Vettori Gestione di vettori La matrice dei dati Definizione Il dataframe Lo spazio di lavoro Workspace La funzione search() La funzione attach() La funzione detach() 14 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 15. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Iniziare e chiudere una sessione di R Iniziare e chiudere una sessione di R Per iniziare una sessione R fare un doppio click di mouse sulla icona di R. Per uscire da R, chiudere la finestra della R-console. Corrado Caudek Alla domanda rispondere “Registro un’immagine del workspace?” rispondere “No”. Se si risponde affermativamente, i dati e le variabili della sessione corrente verranno salvati per la sessione successiva. Per liberarsi di questi dati, digitare > unlink(".RData") 15 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 16. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Aritmetica Semplice aritmetica In R, qualunque cosa venga scritta al prompt viene valutata: > 2+3 Corrado Caudek [1] 5 > 2-3 [1] -1 > 2*3 [1] 6 > 2/3 [1] 0.6666667 > 2^3 [1] 8 16 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 17. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Aritmetica Semplice aritmetica > 4^2-3*2 [1] 10 > (4^2)-(3*2) Corrado Caudek [1] 10 > 2^-3 [1] 0.125 > -2--3 [1] 1 > -2 - -3 [1] 1 17 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 18. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Aritmetica Assegnazione di valori Si può salvare un valore assegnandolo ad un oggetto mediante l’operatore “<-”: > a <- 2 Corrado Caudek > a [1] 2 L’operatore “<-” si ottiene digitando “<” seguito da “-” (senza spazi tra i due). 18 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 19. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Aritmetica Maiuscole e minuscole Si faccia attenzione che R è sensibile alla distinzione tra maiuscole e minuscole. Di conseguenza l’oggetto “a” è diverso dall’oggetto “A”: Corrado Caudek > A Errore: oggetto "A" non trovato > a [1] 2 19 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 20. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Vettori Vettori Dal nostro punto di vista, i software statistici come R sono utili perché consentono di manipolare, non soltanto gli scalari (come fa qualunque calcolatrice portatile), ma Corrado Caudek direttamente i vettori di una matrice di dati. Un vettore di dimensione n può essere definito come una sequenza ordinata di n numeri. Ad esempio (2, 5, 9.5, -3) rappresenta un vettore di dimensione 4 in cui il primo elemento è 2 ed il quarto è -3. 20 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 21. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Vettori Vettori Esistono molti modi per costruire un vettore nell’ambiente R, il più comune è utilizzare la funzione c(): > x <- c(2, 5, 9.5, -3) Corrado Caudek > x [1] 2.0 5.0 9.5 -3.0 Le variabili di una matrice di dati sono oggetti di questo tipo. 21 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 22. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Vettori Vettori Abbiamo visto in precedenza come applicare le operazioni aritmetiche agli scalari: > a <- 2 Corrado Caudek > a [1] 2 > a + 2 [1] 4 Queste stesse le operazioni aritmetiche possono essere applicate ai vettori. 22 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 23. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Vettori Operazioni sui vettori Le operazioni aritmetiche applicate ai vettori sono eseguite elemento per elemento: > x Corrado Caudek [1] 2.0 5.0 9.5 -3.0 > x + 2 [1] 4.0 7.0 11.5 -1.0 > x / 2 [1] 1.00 2.50 4.75 -1.50 > a [1] 2 > a * x [1] 4 10 19 -6 23 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 24. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Vettori Operazioni sui vettori Si noti come, nel caso di un’operazione algebrica compiuta su un vettore e uno scalare, quello che facciamo è semplicemente di ripetere l’operazione algebrica per ciascuno degli elementi del vettore. Corrado Caudek Nel primo esempio, abbiamo eseguito 4 somme, una per ciascuno degli elementi del vettore x. Nel secondo caso, sono stati eseguiti 4 rapporti. 24 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 25. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Vettori Selezione degli elementi dei vettori Come possono essere selezionati gli elementi di un vettore? Gli elementi di un vettore possono essere selezionati Corrado Caudek usando le parentesi quadre []: > x [1] 2.0 5.0 9.5 -3.0 > > x[2] [1] 5 > > x[2] / x[1] [1] 2.5 25 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 26. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Gestione di vettori Gestione di vettori R offre varie funzioni per la manipolazione dei vettori. Per i nostri scopi, sarà necessario conoscere le funzioni che consentono di calcolare Corrado Caudek il numero di elementi contenuti in un vettore: length() il valore massimo degli elementi di un vettore: max() il valore minimo degli elementi di un vettore: min() la somma degli elementi di un vettore: sum() 26 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 27. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Gestione di vettori Funzioni R Le funzioni R richiedono uno o più argomenti che vengono inseriti all’interno di parentesi tonde. Per esempio, la funzione per calcolare la media di una variabile, mean() richiede come argomento il nome della Corrado Caudek variabile, per esempio x, di cui si vuole calcolare la media: > mean(x) La funzione plot() utilizzata per creare un diagramma di dispersione richiede due argomenti, separati da una virgola, la variabile x posta in ascissa e la variabile y in ordinata: > plot(x, y) 27 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 28. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Gestione di vettori Gestione di vettori > x [1] 2.0 5.0 9.5 -3.0 > length(x) Corrado Caudek [1] 4 > min(x) [1] -3 > max(x) [1] 9.5 > sum(x) [1] 13.5 > mean(x) [1] 3.375 28 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 29. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Gestione di vettori Media La media di x è n i=1 xi ¯= x n Corrado Caudek > sum(x) [1] 13.5 > length(x) [1] 4 > sum(x)/length(x) [1] 3.375 > mean(x) [1] 3.375 n Si noti che la funzione sum(x) esegue la somma i=1 xi . 29 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 30. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Gestione di vettori Varianza Calcoliamo ora la varianza di x è n i=1 (xi ¯)2 x s2 = x Corrado Caudek n 1 Gli scarti di ciascun valore dalla media sono > x - mean(x) [1] -1.375 1.625 6.125 -6.375 Il quadrato degli scarti è > ( x - mean(x) )^2 [1] 1.890625 2.640625 37.515625 40.640625 30 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 31. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Gestione di vettori Varianza La somma del quadrato degli scarti è > sum( ( x - mean(x) )^2 ) [1] 82.6875 Il numeratore della varianza è la devianza: n (xi ¯)2 .x Corrado Caudek i=1 La devianza divisa per i gradi di libertà (n 1) produce la varianza: > sum( ( x - mean(x) )^2 ) / (length(x)-1) [1] 27.5625 Lo stesso risultato viene prodotto dalla funzione var(): > var(x) [1] 27.5625 31 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 32. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Gestione di vettori Deviazione standard La radice quadrata della varianza è la deviazione standard ⇥ n i=1 (xi ¯)2 x sx = Corrado Caudek n 1 > sqrt( sum( ( x - mean(x) )^2 ) / (length(x)-1) ) [1] 5.25 > sd(x) [1] 5.25 > sqrt(var(x)) [1] 5.25 32 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 33. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Elementi di sintassi Gestione di vettori summary() La funzione summary() è molto utile per ottenere alcune statistiche descrittive di una variabile: il valore minimo, il massimo, il primo quartile, il terzo Corrado Caudek quartile, la mediana e la media. > summary(x) Min. 1st Qu. Median Mean 3rd Qu. Max. -3.000 0.750 3.500 3.375 6.125 9.500 33 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 34. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R La matrice dei dati Definizione Matrice dei dati Il ricercatore sceglie un certo insieme di oggetti (detti casi – per es., soggetti) e registra il loro stato su alcune proprietà (per es., intelligenza), che vengono trasformate in Corrado Caudek variabili mediante altrettante definizioni operative (per es., il punteggio di QI prodotto dalla WAIS-III). Se la registrazione è sistematica (si registra lo stato di tutti i casi su tutte le proprietà), è possibile organizzare l’informazione raccolta in una matrice dei dati. 34 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 35. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R La matrice dei dati Definizione Matrice dei dati La matrice dei dati ha tante righe quanti sono i casi e tante colonne quante sono le variabili. Nell’intersezione tra una riga e una colonna sta un dato, Corrado Caudek cioè il valore assegnato a un certo caso su una certa proprietà. 35 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 36. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R La matrice dei dati Definizione Matrice dei dati Corrado Caudek Si noti che, a differenza da quanto indicato nella figura, R non consente l’uso di spazi nelle etichette utilizzate per le modalità delle variabili qualitative. 36 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 37. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R La matrice dei dati Definizione Matrice dei dati Come indicato nella figura, la matrice dei dati contiene sia variabili quantitative, sia variabili qualitative. Le colonne della matrice dei dati che contengono variabili Corrado Caudek quantiative sono dette vettori. 37 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 38. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R La matrice dei dati Il dataframe La matrice di dati in R La matrice di dati viene generata in R con la funzione data.frame(). Supponiamo di avere tre variabili costituite dallo stesso numero di elementi: Corrado Caudek > x <- c(1, 2, 3, 3, 5, 7) > y <- c(2, 3, 1, 4, 6, 8) > z <- factor( c(’a’,’b’,’c’,’a’,’b’,’c’) ) Le variabili x e y sono quantitative; la variable z è qualitativa. 38 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 39. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R La matrice dei dati Il dataframe Funzione factor() Si noti la particolare sintassi usata per creare una variabile qualitativa. In primo luogo, la funzione factor() specifica che la Corrado Caudek variabile va intesa come una variabile qualitativa. In secondo luogo, gli elementi passati alla fuzione c() sono racchiusi da virgolette. > z <- factor( c(’a’,’b’,’c’,’a’,’b’,’c’) ) > z [1] a b c a b c Levels: a b c 39 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 40. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R La matrice dei dati Il dataframe Funzione data.frame() La matrice di dati che contiene le variabili x, y, z si costruisce nel modo seguente: > dat <- data.frame(x, y, z) Corrado Caudek > dat x y z 1 1 2 a 2 2 3 b 3 3 1 c 4 3 4 a 5 5 6 b 6 7 8 c Abbiamo così costruito un oggetto R di classe data.frame. 40 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 41. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R La matrice dei dati Il dataframe Dimensioni del dataframe Il numero di righe e di colonne di un dataframe viene calcolato dalla funzione dim(): > dim(dat) Corrado Caudek [1] 6 3 > > dat x y z 1 1 2 a 2 2 3 b 3 3 1 c 4 3 4 a 5 5 6 b 6 7 8 c 41 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 42. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R La matrice dei dati Il dataframe Selezionare una parte del dataframe Come nel caso dei vettori, gli elementi di un dataframe possono essere selezionati utilizzando le parentesi quadre, ovvero specificando il numero di riga (primo Corrado Caudek parametro) e il numero di colonna (secondo parametro): > dat x y z 1 1 2 a 2 2 3 b 3 3 1 c 4 3 4 a 5 5 6 b 6 7 8 c > dat[3,2] [1] 1 > dat[5,3] [1] b 42 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 43. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R La matrice dei dati Il dataframe Selezionare una parte del dataframe Se uno dei due indici non viene specificato, si intendono tutti gli elementi di quella/e riga/e o colonna/e: > dat[,1] Corrado Caudek [1] 1 2 3 3 5 7 > dat[,2] [1] 2 3 1 4 6 8 > dat[,3] [1] a b c a b c Levels: a b c > > dat[2,] x y z 2 2 3 b > dat[3,] x y z 3 3 1 c 43 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 44. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R La matrice dei dati Il dataframe Operatore : L’operatore : viene usato per indicare la gamma di variazione di un indice. Per esempio, per selezionare le righe 3, 4, 5, 6 dal Corrado Caudek dataframe dat usiamo la seguente sintassi: > dat[3:6, ] x y z 3 3 1 c 4 3 4 a 5 5 6 b 6 7 8 c 44 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 45. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Lo spazio di lavoro Workspace Lo spazio di lavoro Gli oggetti presenti nello spazio di lavoro (workspace) possono essere elencati usando la funzione ls(): > ls() Corrado Caudek [1] "dat" "x" "y" "z" Eliminiamo ora dallo spazio di lavoro gli oggetti x, x, z: > rm(x, y, z) > ls() [1] "dat" 45 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 46. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Lo spazio di lavoro Workspace Lo spazio di lavoro Si noti che l’oggetto x, per esempio, non è più presente nello spazio di lavoro, pur essendo contenuto nel dataframe dat: Corrado Caudek > x Errore: oggetto "x" non trovato > dat x y z 1 1 2 a 2 2 3 b 3 3 1 c 4 3 4 a 5 5 6 b 6 7 8 c 46 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 47. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Lo spazio di lavoro La funzione attach() La funzione attach() Utilizziamo ora la funzione attach() a cui passiamo come parametro il nome dell’oggetto dat avente classe data.frame: Corrado Caudek > attach(dat) > search() [1] ".GlobalEnv" "dat" [3] "tools:RGUI" "package:stats" [5] "package:graphics" "package:grDevices" [7] "package:utils" "package:datasets" [9] "package:methods" "Autoloads" [11] "package:base" 47 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 48. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Lo spazio di lavoro La funzione attach() La funzione attach() Ora dat è presente nel percorso di ricerca. Quando digitiamo x, l’interprete R svolge una ricerca in tutte le locazioni specificate dal percorso di ricerca, che Corrado Caudek ora comprende il dataframe dat, e recupera la variabile x dal dataframe dat: > x [1] 1 2 3 3 5 7 48 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 49. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Lo spazio di lavoro La funzione attach() La funzione attach() Si tenga a mente che è pericoloso applicare la funzione attach() a più di un dataframe simultaneamente. Se due dataframe contengono due variabili diverse, ma Corrado Caudek aventi lo stesso nome, l’interprete R ne selezionerà quella contenuta nel dataframe che precede l’altro nel percorso di ricerca. Questo può non essere quello che intende l’utente. Per evitare pasticci, dunque, quando un dataframe non viene più utilizzato, è opportuno eliminarlo dal percorso di ricerca. 49 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 50. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Lo spazio di lavoro La funzione detach() La funzione detach() Dal momento che le variabili in un dataframe possono “mascherare” le variabili in un altro dataframe, è buona pratica usare la funzione attach() con un dataframe alla Corrado Caudek volta. Un data frame può essere rimosso dal percorso di ricerca mediante la funzione detach(): > detach(dat) > x Errore: oggetto "x" non trovato 50 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 51. Una Introduzione ad R: parte I Le funzionalità dell’ambiente R Lo spazio di lavoro La funzione detach() Selezione di una variabile da un dataframe In alternativa, senza utilizzare la funzione attach(), una variabile può essere recuperata direttamente da un dataframe utilizzando la seguente sintassi: Corrado Caudek > x Errore: oggetto "x" non trovato > dat$x [1] 1 2 3 3 5 7 51 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 52. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Importazione dei dati L’inserimento dei dati nello spazio di lavoro può essere affrontato mediante la funzione data.frame(). Alternativamente, X<-data.frame() crea un dataframe Corrado Caudek che è poi possibile aprire con fix(X) per l’inserimento dei dati direttamente nelle celle. Un’altra possibilità è quella di importare i dati che sono disponibili in un file ASCII creato da un qualsiasi altro programma. 52 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 53. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Importazione dei dati contenuti in un file ASCII La funzione da utilizzare a tale scopo è read.table(). Si supponga che il file ASCII duncan.txt sia così costituito: Corrado Caudek type income education prestige prof 62 86 82 prof 72 76 83 prof 75 92 90 prof 55 90 76 prof 64 86 90 ... Si noti che la prima riga contiene il nome delle variabili. 53 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 54. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Importazione dei dati contenuti in un file ASCII La prima operazione da fare è quella di selezionare, mediante il menu della R-console, l’opportuna cartella di lavoro che contiene il file di dati. Corrado Caudek Fatto ciò, i dati possono essere importati nell’ambiente R nel modo seguente: > duncan <- read.table("duncan.txt", header=TRUE) 54 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 55. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Importazione dei dati contenuti in un file ASCII Si noti che il nome del file deve essere racchiuso da virgolette doppie; il nome del file deve contenere l’estensione .txt; l’argomento header= TRUE specifica che la prima riga del Corrado Caudek file contiene il nome delle variabili; i due argomenti (il nome del file "duncan.txt" e l’argomento header= TRUE) devono essere separati da una virgola; mediante l’operatore “<-” abbiamo creato l’oggetto duncan che conterrà la matrice dei dati. 55 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 56. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Importazione dei dati contenuti in un file ASCII Digitando il nome di un oggetto, il contenuto di quell’oggetto viene stampato nella R-console. Nel caso presente, digitando duncan otteniamo: Corrado Caudek > duncan type income education prestige 1 prof 62 86 82 2 prof 72 76 83 3 prof 75 92 90 4 prof 55 90 76 5 prof 64 86 90 ... 56 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 57. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Importazione dei dati contenuti in un file ASCII Quello che abbiamo fatto fino ad ora è di creare un oggetto chiamato duncan che è disponibile nella memoria di lavoro di R e che contiene le variabili type, income, Corrado Caudek education e prestige. Ovviamente, siamo interessati alle variabili contenute in duncan e non all’oggetto duncan nel suo complesso. 57 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 58. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Dataframe nello spazio di lavoro Se digitiamo il nome di una variabile, es. education, notiamo che tale variabile non è presente nello spazio di lavoro: Corrado Caudek > education Errore: oggetto "education" non trovato Per rendere disponibili nello spazio di lavoro le variabili contenute nel data frame duncan usiamo la funzione attach(): > education [1] 86 76 92 90 86 84 93 100 87 86 74 98 97 [14] 84 91 34 45 56 44 82 72 55 71 50 23 39 [27] 28 32 22 25 29 7 26 19 15 20 26 28 17 [40] 22 30 25 20 47 32 58 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 59. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Media A questo punto, education è presente nello spazio di lavoro e può essere manipolata usando le funzioni di R. Contiamo il numero di casi: Corrado Caudek > length(education) [1] 45 Calcoliamo la media di education: > mean(education) [1] 52.55556 59 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 60. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Media La media è uguale a n ¯ i=1 Yi Y= Corrado Caudek n La somma degli elementi di una variabile si calcola nel modo seguente: > sum(education) [1] 2365 Calcoliamo nuovamente la media di education: > sum(education)/length(education) [1] 52.55556 60 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 61. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Varianza Pn i=1 (Yi Y)2 ¯ La varianza di education è s2 Y = n 1 Gli scarti dei valori di education dalla media sono: Corrado Caudek > education - mean(education) [1] 33.444444 23.444444 39.444444 37.444444 [5] 33.444444 31.444444 40.444444 47.444444 [9] 34.444444 33.444444 21.444444 45.444444 [13] 44.444444 31.444444 38.444444 -18.555556 [17] -7.555556 3.444444 -8.555556 29.444444 [21] 19.444444 2.444444 18.444444 -2.555556 [25] -29.555556 -13.555556 -24.555556 -20.555556 [29] -30.555556 -27.555556 -23.555556 -45.555556 [33] -26.555556 -33.555556 -37.555556 -32.555556 [37] -26.555556 -24.555556 -35.555556 -30.555556 [41] -22.555556 -27.555556 -32.555556 -5.555556 [45] -20.555556 61 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 62. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Varianza Gli scarti al quadrato sono: > ( education - mean(education) )^2 [1] 1118.530864 549.641975 1555.864198 1402.086420 Corrado Caudek [5] 1118.530864 988.753086 1635.753086 2250.975309 [9] 1186.419753 1118.530864 459.864198 2065.197531 [13] 1975.308642 988.753086 1477.975309 344.308642 [17] 57.086420 11.864198 73.197531 866.975309 [21] 378.086420 5.975309 340.197531 6.530864 [25] 873.530864 183.753086 602.975309 422.530864 [29] 933.641975 759.308642 554.864198 2075.308642 [33] 705.197531 1125.975309 1410.419753 1059.864198 [37] 705.197531 602.975309 1264.197531 933.641975 [41] 508.753086 759.308642 1059.864198 30.864198 [45] 422.530864 62 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 63. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Varianza La somma degli scarti al quadrato è: > sum( ( education - mean(education) )^2 ) [1] 38971.11 Corrado Caudek Dividendo per n 1 si ottiene la varianza > sum((education - mean(education))^2)/(length(education) - 1) [1] 885.707 > var(education) [1] 885.707 63 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 64. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() Deviazione standard La deviazione standard è la radice quadrata della varianza: Pn i=1 (Yi Y)2 ¯ s= n 1 Corrado Caudek > sd(education) [1] 29.76083 > sqrt(var(education)) [1] 29.76083 64 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 65. Una Introduzione ad R: parte I Creazione e importazione di dati Importazione di dati Funzione read.table() summary() Si noti che informazioni base sulle variabili contenute in un dataframe si possono ottenere usando la funzione summary(): Corrado Caudek > summary(duncan) type income education prestige bc :21 Min. : 7.00 Min. : 7.00 Min. : 3.00 prof:18 1st Qu.:21.00 1st Qu.: 26.00 1st Qu.:16.00 wc : 6 Median :42.00 Median : 45.00 Median :41.00 Mean :41.87 Mean : 52.56 Mean :47.69 3rd Qu.:64.00 3rd Qu.: 84.00 3rd Qu.:81.00 Max. :81.00 Max. :100.00 Max. :97.00 65 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 66. Una Introduzione ad R: parte I Creazione e importazione di dati Sequenze Creare una sequenza Sequenze R offre varie funzioni per per creare vettori che sono sequenze di numeri. Per i nostri scopi, utilizzeremmo Corrado Caudek l’operatore : seq() rep() 66 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 67. Una Introduzione ad R: parte I Creazione e importazione di dati Sequenze Creare una sequenza Sequenze Operatore : L’operatore : consente di generare sequenze di numeri interi: Corrado Caudek > 1:4 [1] 1 2 3 4 67 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 68. Una Introduzione ad R: parte I Creazione e importazione di dati Sequenze Creare una sequenza Sequenze Operatore : Tale operatore può essere usato all’interno delle parentesi quadre che per specificare i valori dell’indice che individua Corrado Caudek gli elementi di un vettore: > y <- c(2, 3, 5, 1, 9) > y [1] 2 3 5 1 9 > y[2] [1] 3 > y[2:4] [1] 3 5 1 68 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 69. Una Introduzione ad R: parte I Creazione e importazione di dati Sequenze Creare una sequenza Sequenze Funzione seq() La funzione seq() consente di generare sequenze di numeri più complesse: Corrado Caudek > seq(2, 8, by=2) [1] 2 4 6 8 > seq(0, 1, by=.1) [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 > seq(1, 30, length.out=10) [1] 1.00 4.22 7.44 10.67 13.89 17.11 20.33 [8] 23.56 26.78 30.00 69 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 70. Una Introduzione ad R: parte I Creazione e importazione di dati Sequenze Creare una sequenza Sequenze Funzione rep() Qui sono forniti alcuni esempi relativi alla funzione rep(): > rep(c(1, 2, 3), each=3) Corrado Caudek [1] 1 1 1 2 2 2 3 3 3 > f1 <- factor( rep(c(’a’, ’b’, ’c’), each=3) ) > f1 [1] a a a b b b c c c Levels: a b c 70 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 71. Una Introduzione ad R: parte I Creazione e importazione di dati Matrici numeriche Creazioni di matrici numeriche Matrici Per creare una matrice di dati si utilizza il comando matrix(): > X <- matrix(c( + 4, 3, 6, Corrado Caudek + 1, 5, 2, + 3, 2, 7, + 9, 3, 1), + ncol=3, byrow=TRUE) > X [,1] [,2] [,3] [1,] 4 3 6 [2,] 1 5 2 [3,] 3 2 7 [4,] 9 3 1 Bisogna specificare nrow o ncol per comunicare a R la dimensione della matrice; byrow=TRUE significa che la matrice è riempita seguendo le righe. 71 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 72. Una Introduzione ad R: parte I Creazione e importazione di dati Matrici numeriche Creazioni di matrici numeriche Selezione degli elementi di una matrice Per estrarre da una matrice un elemento, bisogna specificarne le due coordinate (ovvero il numero della riga e il numero della colonna) usando le parentesi quadre: Corrado Caudek > X [,1] [,2] [,3] [1,] 4 3 6 [2,] 1 5 2 [3,] 3 2 7 [4,] 9 3 1 > > X[3,1] [1] 3 > X[4,3] [1] 1 72 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 73. Una Introduzione ad R: parte I Creazione e importazione di dati Matrici numeriche Creazioni di matrici numeriche Selezione degli elementi di una matrice Se non si indica una delle coordinate, si ottiene un’intera riga/colonna. Per selezionare una colonna della matrice basta omettere Corrado Caudek l’indice delle righe: > X [,1] [,2] [,3] [1,] 4 3 6 [2,] 1 5 2 [3,] 3 2 7 [4,] 9 3 1 > > X[, 2] [1] 3 5 2 3 > X[, 3] [1] 6 2 7 1 73 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 74. Una Introduzione ad R: parte I Creazione e importazione di dati Matrici numeriche Creazioni di matrici numeriche Selezione degli elementi di una matrice Per selezionare una riga basta omettere l’indice delle colonne: > X Corrado Caudek [,1] [,2] [,3] [1,] 4 3 6 [2,] 1 5 2 [3,] 3 2 7 [4,] 9 3 1 > > X[2, ] [1] 1 5 2 > X[4, ] [1] 9 3 1 74 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 75. Una Introduzione ad R: parte I Creazione e importazione di dati Matrici numeriche Creazioni di matrici numeriche Dimensioni della matrice La funzione dim() indica la dimensione (numero di righe e numero di colonne) della matrice: > X Corrado Caudek [,1] [,2] [,3] [1,] 4 3 6 [2,] 1 5 2 [3,] 3 2 7 [4,] 9 3 1 > > dim(X) [1] 4 3 75 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 76. Un introduzione ad R parte II C. White, Part of “ Drops of Rain”, 1967 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 77. Una Introduzione ad R: parte II La potenza è nulla senza controllo Pubblicità della Pirelli Sommario 77 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 78. Una Introduzione ad R: parte II La potenza è nulla senza controllo Pubblicità della Pirelli Sommario • Nella lezione presente si introduce l’uso di R, facendo alcune semplici operazioni 77 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 79. Una Introduzione ad R: parte II Filosofando... Ingenui, se fino a questo momento credevate che un buon software possa risolvere tutti i vostri problemi di tipo statistico, ricordatevi bene che in realtà non esiste un sostituto per l’esperienza e la conoscenza di un esperto, anche se l’analisi statistica da eseguire può sembrare semplice! Né R né qualunque altro sistema statistico vi daranno l’esperienza statistica necessaria per usare tecniche sofisticate, o per sapere quando i metodi semplici non sono sufficienti. In attesa di trovare un adeguato detto in Latino, accontentiamoci di uno in Inglese: "The data analyst knows more than the computer: failure to use that knowledge produces inadequate data analysis." “Toller-Confucio” 78 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 80. Una Introduzione ad R: parte II Un Caso: l’analisi delle portate dell’Adige a Ponte S. Lorenzo 79 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 81. Una Introduzione ad R: parte II Prima di tutto bisogna sapere in quale directory (folder) è R #per vedere i files della directory in cui si sta lavorando list.files() 80 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 82. Una Introduzione ad R: parte II 81 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 83. Una Introduzione ad R: parte II In seguito e’ senz'altro necessario cambiare directory, lo si puo’ fare con setwd("Documents/AAA-Idrologia/LezioniIdrologia/R/ Dati_Comandi/") questo perchè nel mio computer, il file 1990-2005.txt che contiene i dati di portata è nella directory: "/home/riccardo/AAA-Idrologia/LezioniIdrologia/R/Dati_Comandi/". > f<-"/Users/Matteo/Documents/costruz_idrauliche/6b- R/Dati_Comandi/1990-2005.txt" > dirname(f) [1] "/Users/Matteo/Documents/costruz_idrauliche/6b- R/Dati_Comandi" > setwd(dirname(f) 82 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 84. Una Introduzione ad R: parte II Un nuovo list.files() permette di verificare quali files siano effettivamente presenti nella directory. Il file 1990-2005.txt è un file di testo (o file ASCII) e non contiene nessuno dei caratteri di controllo tipici di programmi di formattazione dei testi (come MS Word). 83 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 85. Una Introduzione ad R: parte II Un nuovo list.files() permette di verificare quali files siano effettivamente presenti nella directory. Il file 1990-2005.txt è un file di testo (o file ASCII) e non contiene nessuno dei caratteri di controllo tipici di programmi di formattazione dei testi (come MS Word). 83 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 86. Una Introduzione ad R: parte II Questo file non è comunque un esempio da seguire. Un file di dati veramente usabile deve essere accompagnato dagli appositi metadati che ne specificano i contenuti. 84 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 87. Una Introduzione ad R: parte II Il file può essere letto con vari metodi (per esempio) usando read.table(), ma qui, usiamo un comando diverso che si trova nel pacchetto Zoo - Z’s ordered obiservations. Innanzitutto bisogna caricare il pacchetto con il comando: > library(zoo) naturalmente, se nella cartella, library è presente, il pacchetto, opportunamente scaricato e decompattato dal CRAN > install.packages("zoo") Una volta caricata la libreria, per leggere il file basta usare il comando: > read.zoo(“1990-2005.txt”) -> prt Per avere delle statistiche elementari sui dati, basta usare il comando > summary(prt) 85 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 88. Una Introduzione ad R: parte II > summary(prt) Index V1 Min. : 1 Min. : -1.0 1st Qu.:1462 1st Qu.: 109.2 Median :2922 Median : 156.4 Mean :2922 Mean : 188.8 3rd Qu.:4382 3rd Qu.: 235.9 Max. :5843 Max. :1447.7 summary ha alcuni “side effects” applicato sull’oggetto prt. Infatti produce anche le media e i quantili dell’indice (che non ha alcun significato) summary(coredata(prt)) la funzione coredata(prt) estrae, in effetti, dall’oggetto (zoo()) solo i dati “nudi”. 86 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 89. Una Introduzione ad R: parte II Si può fare di meglio: > read.zoo(“1990-2005.txt”, col.names=”Portate”) -> prt da anche il nome corretto ai valori nella prima colonna > summary(coredata(prt)) Portate Min. : -1.0 1st Qu.: 109.2 Median : 156.4 Mean : 188.8 3rd Qu.: 235.9 Max. :1447.7 87 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 90. Una Introduzione ad R: parte II Si notino un paio di cose: 1 - Il valore minimo della portata è -1. Fatto che significa che i dati non sono così corretti come si vorrebbe. Il dato -1, quasi sicuramente, è stato scritto per significare CHE QUEL GIORNO non sono presenti misure. In R tale informazione è marcata con il simbolo NA. 2 - Si vorrebbe che accanto ai dati, fossero presenti anche le date in cui tali misure sono state prese. 88 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 91. Una Introduzione ad R: parte II = Risolviamo: 1 - Il valore minimo della portata è -1. Fatto che significa che i dati non sono così corretti come si vorrebbe. Il dato -1, quasi sicuramente, è stato scritto per significare CHE QUEL GIORNO non sono presenti misure. In R tale informazione è marcata con il simbolo NA. > which.min(coredata(prt)) [1] 3674 > prt[3674][[1]] <- NA > summary(coredata(prt)) Portate Min. : 34.44 1st Qu.: 109.20 Median : 156.40 Mean : 188.86 3rd Qu.: 235.92 Max. :1447.70 NA's : 1.00 89 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 92. Una Introduzione ad R: parte II 2 - Si vorrebbe che accanto ai dati, fossero presenti anche le date in cui tali misure sono state prese. 1400 1200 1000 800 prt 600 400 200 0 0 1000 2000 3000 4000 5000 6000 Index 90 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 93. Una Introduzione ad R: parte II 2 - Si vorrebbe che accanto ai dati, fossero presenti anche le date in cui tali misure sono state prese. Il comando > time(prt) consente di capire quale sia il tempo nella variabile prt. La risposta,in questo caso da una (lunga sequenza) di numeri interi. Significa che non è stata attribuita alcuna associazione tra prt e una variabile “tempo”. Infatti il file iniziale conteneva una sola colonna con i dati. SAPENDO che i dati si riferiscono al periodo compreso tra il 1 Gennaio 1990 e il 31 Dicembre 2005, si opera nel modo seguente: 91 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 94. Una Introduzione ad R: parte II A - Si construisce una serie di dati di date: >seq(from=as.Date("1990-01-02"),to=as.Date("2005-12-31"),by="days") ->ymd B - Si assegna alla variabile “time” associata a “prt” il valore di ymd: > time(prt) <-ymd C - Se si disegna ora il grafico delle portate 92 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 95. Una Introduzione ad R: parte II C - Se si disegna ora il grafico delle portate: >plot(prt,xlab="Anno",ylab="Portate m^3/s") 1400 1200 1000 Portate m^3/s 800 600 400 200 0 1990 1995 2000 2005 Anno 93 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 96. Una Introduzione ad R: parte II Interpretiamo ora i comandi contenuti in: >seq(from=as.Date("1990-01-02"),to=as.Date("2005-12-31"),by="days") ->ymd - seq() genera una sequenza di dati. I suoi campi indicano rispettivamente: - from = .... il primo termine della sequenza - to = l’ultimo termine della serie di dati - by = lo “step”, ovvero l’intervallo che separa un dato dal successivo. 94 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 97. Una Introduzione ad R: parte II Interpretiamo ora i comandi contenuti in: >seq(from=as.Date("1990-01-02"),to=as.Date("2005-12-31"),by="days") ->ymd - seq() genera una sequenza di dati. I suoi campi indicano rispettivamente: - from = .... il primo termine della sequenza - to = l’ultimo termine della serie di dati - by = lo “step”, ovvero l’intervallo che separa un dato dal successivo. NOTA: SI OSSERVI CHE QUESTO COMANDO E’ UNA DIMOSTRAZIONE DELLA STRUTTURA OBJECT ORIENTED (ORIENTATA AGLI OGGETTI) DEL LINGUAGGIO R. INIZIO, FINE DELLA SEQUENZA SONO INFATTI DICHIARATI COME OGGETTI “DATA” E, DI CONSEGUENZA ANCHE LO STEP E’ UNA UNITA’ DI TEMPO E LA SERIE RISULTANTE E’ UNA SERIE DI DATE. SE seq() fosse stata applicata a dei numeri, la sequanza generata sarebbe risultata una sequenza di numeri. 94 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 98. Una Introduzione ad R: parte II Vogliamo ora disegnare i dati relativi ad un solo anno. R ha il comando window() che permette di selezionare una “finestra” temporale. > data.1990 <- window(prt,start=as.Date("1990-01-02"),end=as.Date("1990-12-01")) > plot(data.1990,xlab="Anno",ylab="Portate m^3/s") 400 300 Portate m^3/s 200 100 Jan Mar May Jul Sep Nov Anno 95 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 99. Una Introduzione ad R: parte II Istogramma delle portate tra il 1990 e il 2005: Histogram of coredata(prt) 2500 2000 1500 Frequency 1000 500 0 0 500 1000 1500 coredata(prt) 96 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 100. Una Introduzione ad R: parte II Istogramma delle portate tra il 1990 e il 2005: > hist(coredata(prt),breaks=20) Histogram of coredata(prt) 1500 1000 Frequency 500 0 0 500 1000 1500 coredata(prt) 97 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 101. Una Introduzione ad R: parte II Istogramma delle portate tra il 1990 e il 2005: > hist(coredata(prt),breaks=80) Histogram of coredata(prt) 600 500 400 Frequency 300 200 100 0 0 200 400 600 800 1000 1200 1400 coredata(prt) 98 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 102. Una Introduzione ad R: parte II BoxPlot delle portate tra il 1990 e il 2005 > as.factor(format(ymd,format="%Y"))->fyear >boxplot(coredata(prt)~fyear) 1400 1200 1000 800 600 400 200 0 1990 1992 1994 1996 1998 2000 2002 2004 99 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 103. Una Introduzione ad R: parte II Un altro Caso: la lettura e l’analisi di dati provenienti dagli annali idrologici 100 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 104. Una Introduzione ad R: parte II Quello che ci proponiano è di leggere la tabella di dati contenuta nel file esterno "PluviometriaPaperopoli. txt" Assunto di avere istallato R e di averlo funzionante sul proprio computer, eseguiamo allora i comandi: 101 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 105. Una Introduzione ad R: parte II #per vedere i files della directory in cui si sta lavorando list.files() 102 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 106. Una Introduzione ad R: parte II Il comando per leggere il file è data = read.table("PluviometriaPaperopoli.txt",header=TRUE,skip=1) Nel caso in cui si voglia considerare -1 come un NA data = read.table("PluviometriaPaperopoli.txt",header=TRUE,skip=1,na.string s=-1) Per ottenere una completa spiegazione della sintassi del comando, si può usare: ?read.table() Il risultato è immagazzinato nella variabile "data". 103 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 107. Una Introduzione ad R: parte II 104 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 108. Una Introduzione ad R: parte II Esistono altri comandi per leggere informazioni da files, per esempio "scan()". read.table() è tuttavia semplice e conveniente; "data" è un oggetto che, in R, è chiamato "data frame" o "table frame", che corrisponde ad una lista (list) di oggetti numerici e non numerici. Tutti i comandi o le parole chiave di R di cui sopra possono essere interrogati con ?comando L'oggetto "data" ha una struttura complessa e i suoi elementi possono essere estratti come data[1], data[2], ecc. Questi pero' non sono vettori, ma a loro volta dei data.frame. Per estrarre il vettore bisogna fare data1[[1]]. Infatti: is.vector(data[[1]]) dà TRUE. 105 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 109. Una Introduzione ad R: parte II Osservando i dati contenuti in data, si vede che alcuni anni sono ripetuti. Questi elementi vanno cancellati nelle successive analisi (gli elementi da cancellare sno diversi da un intervallo temporale ad un altro). R è dotato di un editor dei dati che si può invocare con il comando edit(data) o, nella maggior parte delle interfaccie ad R usando l'opportuno menu' a tendina. 106 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 110. Una Introduzione ad R: parte II 107 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12
  • 111. Una Introduzione ad R: parte II Ci sono righe ripetute? Proviamo a controllare... as.factor() mi dice quante sono le “etichette” dei dati di un vettore, length mi dice quanti sono i dati totali in un vettore > as.factor(data[,1]) [1] 1925 1925 1925 1928 1928 1929 1930 1930 1931 1932 [11] 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 [21] 1944 1950 1951 1952 1955 1955 1956 1957 1958 1959 [31] 1959 1960 1960 1961 1961 1962 1963 1964 1965 1966 [41] 1967 1968 1969 1971 1972 1973 1974 1975 1976 1977 [51] 1978 1979 1980 1984 1985 1986 1987 1988 50 Levels: 1925 1928 1929 1930 1931 1932 1934 ... 1988 > length(data[,1]) [1] 58 Ci sono dunque 8 righe che sono ripetute. Quali sono? 108 Riccardo Rigon, Matteo Dall’Amico Tuesday, March 6, 12