Introduzione a R Ovvero: Come non avere limiti nella programmazione se non quelli dettati dalla nostra stessa mente

Documenti analoghi
Introduzione a R Ovvero: Come non avere limiti nella programmazione se non quelli dettati dalla nostra stessa mente

UNIVERSITÀ DEGLI. DI - Dipartimento di Informatica Università degli Studi di Milano

Modulo III - Cenni alla programmazione in R

1 Introduzione. 1.2 Area di lavoro e comandi

Strutture di controllo

STATISTICA 1, metodi matematici e statistici

Laboratorio 1 Strumenti quantitativi per la gestione

Laboratorio di Statistica

Controllo del flusso di esecuzione di un programma

Strutture dati fondamentali in R: Vettori, matrici ed array, fattori, liste, data frame

INTRODUZIONE A R. Dott. Giuseppe Sgroi Dipartimento di Matematica e Informatica 29 Maggio 2019

Il linguaggio R Un invito ad approfondire

Strutture dati fondamentali in R: Vettori, matrici ed array, fattori, liste, data frame

Introduzione al software R

Modulo III - Introduzione ad R

R - Esercitazione 1. Andrea Fasulo 7 Ottobre Università Roma Tre

STATISTICA LAB. Analisi dei dati con R - Ex 1. Marta Nai Ruscone. LIUC - Università Carlo Cattaneo, Castellanza STATISTICA LAB

I package: librerie sw in R

Laboratorio di Statistica e Analisi Dati: Lezione 1

Informazioni su oggetti R

Liste. Università degli Studi di Milano

Informatica e Statistica 1 INTRODUZIONE R

Array e matrici. Università degli Studi di Milano. Laurea Specialistica in Genomica Funzionale e Bioinformatica. Giorgio Valentini

Università degli Studi di Milano. Laurea Specialistica in Genomica Funzionale e Bioinformatica. Array e matrici. Giorgio Valentini

Leggere e scrivere dati da file

Modulo III - Creazione di documenti, presentazioni e report

Praticamente Statistica Laboratorio di software open source

Corso di Analisi dei Dati Esercitazione R n. 1

Introduzione a Matlab

STATISTICA LAB. Analisi dei dati con R - Ex 2. Marta Nai Ruscone. LIUC - Università Carlo Cattaneo, Castellanza STATISTICA LAB

Lezione precedente. D. Fioredistella IEZZI

Introduzione all Analisi Esplorativa dei Dati mediante R 1

Il linguaggio PHP. Insegnarvi tutto il PHP? Non esattamente Obiettivo: insegnarvi ad interagire via web con una base dati

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21

Modulo III - Introduzione ad R

Controllo del flusso di esecuzione di un programma

Programmi e funzioni in R

Introduzione al Sistema Operativo MS-Windows ed all Uso dell IDE DEV-C++

R - Esercitazione 2. Andrea Fasulo 20 Ottobre Università Roma Tre

MATLAB - Introduzione. Antonino Polimeno

Laboratorio di Statistica e Analisi Dati: Lezione 4

Generalizzazioni di vettori

APPENDICE III. CONSIGLI PER L USO DEL SOFTWARE R (a cura del Dott. Lorenzo Giolli)

Parte 2 Tutorial Cenni di programmazione

L ambiente R (accenni)

PARTE XI: Introduzione all ambiente R

Introduzione all ambiente MATLAB. Richiami II. Analisi Numerica - A.A. 2007/08

Modulo III - Guida alla installazione di R

Avviate l interprete Python selezionandolo dal menu dei programmi. Una volta avviato, l interprete presenta un cursore in cui inserire comandi

GUIDA ALL INSTALLAZIONE DI R CONTENUTO

Laboratorio di ST1 - Lezione 1

Calcolo Numerico A.A Esercitazione n

Installazione di EasyPhp. Avviare EasyPhp. La finestra di amministrazione di EasyPhp

Informatica Applicata al Suono Tutorial Matlab

Corso Introduttivo all utilizzo di R! Prof.ssa D.F. Iezzi

Programmazione C Massimo Callisto De Donato

1.1 Iniziare e chiudere una sessione di R

Introduzione a MATLAB

Università degli Studi di Ferrara

Java e i Tipi di dati primitivi. Parte 3

Data mining and machine learning lab

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Laboratorio di Matlab

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript

Wolfram Mathematica per la teoria dei grafi

INTRODUZIONE A MATLAB. Introduzione. Calcolatrice base. Calcolatrice base. Variabili predefinite o speciali. Variabili predefinite o speciali

Valori Alfanumerici. Informatica di Base -- R.Gaeta 1

Introduzione a Java. Riferimenti

Eclipse e SDK. Capiamo che sistema operativo abbiamo

L analisi dei dati. L analisi dei dati. Le basi di dati. Le basi dati 10/04/2010. Claudio Locci - Vincenzo Rundeddu Le basi dati.

Università degli Studi di Ferrara

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript

Breve introduzione al linguaggio R

Corso sul pacchetto R

Strutture di controllo del flusso di esecuzione

Calcolo numerico e programmazione Introduzione a Scilab (3)

Javascript: il browser

INTRODUZIONE A R Lezione 1

Introduzione a R. Monica Marabelli. 30 Ottobre 2015

Il linguaggio R. Un invito ad approfondire. Giulio D Agostini.

Programmi e funzioni in R

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Programmazione Matlab

Introduzione a MATLAB

Corso di Laboratorio di Sistemi Operativi

Fondamenti di Informatica

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Università di Ferrara 1 APPELLO, SESSIONE ESTIVA, 2015 ESEMPIO CORSO DI LAUREA TRIENNALE IN ECONOMIA INFORMATICA. (Durata prova scritta: 30 minuti)

PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii

Fondamenti di Informatica

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Script in Matlab

Le basi del linguaggio Java

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

Javascript: il browser

Transcript:

Università di Bologna - Facoltà di Scienze Statistiche Laurea Triennale in Statistica e Ricerca Sociale Corso di Analisi di Serie Storiche e Multidimensionali Introduzione a R Ovvero: Come non avere limiti nella programmazione se non quelli dettati dalla nostra stessa mente Francesca Marta Lilja Di Lascio dilascio@stat.unibo.it Dip. di Scienze Statistiche P. Fortunati Università di Bologna 1

Outlines 1. Cosa è R e a cosa serve 2. Dove nasce, Dove si scarica e Come si installa 3. Bibliografia essenziale 4. Come si organizza il lavoro e si diventa autonomi (2/2) 5. Nozioni di base: dai vettori alle funzioni, dai data frame alle strutture logiche (16/16) 6. Potenzialità e limiti di R 2

1. Cosa è R e a cosa serve È un linguaggio di programmazione ad alto livello interpretato È un linguaggio orientato all analisi dei dati: permette di strutturare, elaborare, gestire e visualizzare dati complessi ed eterogenei, fornendo un ambiente integrato di risorse software Supporta paradigmi di programmazione object oriented e dispone di interfacce verso programmi scritti con altri linguaggi (es: C++, Fortran) Ambiente di sviluppo e package open source disponibili free in internet. È uno dei più usati linguaggi per le analisi statistiche 3

2. Dove nasce, Dove si scarica e Come si installa R è un progetto Open Source (conforme per la maggior parte ad S, un linguaggio ed un sistema sviluppati da John Chambers e collaboratori negli anni 80 presso i Laboratori Bell, da cui deriva) Inizialmente sviluppato da R. Ihaka and R. Gentleman (Università di Auckland (NZ)) e, attualmente, da una comunità internazionale di ricercatori e sviluppatori in ambito accademico e industriale Opera attraverso il web: CRAN the Comprehensive R Archive Network: http://cran.r-project.org/ (ci sono anche mirror locali) Archivi software e documentazione: http://cran.r-project.org/ (CRAN the Comprehensive R Archive Network) Disponibili distribuzioni binarie per: Win, Mac e Linux L installazione domestica sul proprio PC è semplice. F. Marta L. Di Lascio - Dip. di Scienze Statistiche P. Fortunati, Univ. di Bologna 4

3. Bibliografia essenziale Libri e manuali introduttivi disponibili on-line o in biblioteca: - W. Venables e D.M. Smith, An Introduction to R http://cran.rproject.org/doc/manuals/r-intro.pdf, 2006. - J. Maindonald, Using R for Data Analysis and Graphics http://www.maths.anu.edu.au/ johnm, 2000. - S. M. Iacus e G. Masarotto, Laboratorio di statistica con R McGraw Hill, Milano, 2003. Libri e manuali specifici sul linguaggio e riguardanti lo sviluppo dei Package - R Development Core Team, R Language Definition http://cran.rproject.org/doc/manuals/r-def.pdf, 2006. - R Development Core Team, Writing R extensions http://cran.rproject.org/doc/manuals/r-exts.pdf, 2006. - R Development Core Team, R Data Import/Export http://cran.rproject.org/doc/manuals/r-data.pdf, 2006. 5

4. Come si organizza il lavoro 1/2 Specificare la directory di lavoro identificabile digitando getwd() e modificabile mediante setwd(). Altrimenti andate in File Changedir... Salvare files dei dati e dei codici digitati nella directory di lavoro specificata - File.Rhistory: riporta i codici digitati sul prompt. Si salva da File Save History... - File.Rdata: e il vostro work space. Si salva da File Save Workspace... Le immagine possono essere salvate in diversi formati:.ps,.bmp,.jpg,.pdf,.png,.emf. Potete sempre richiamare ogni workspace di R, importandolo in altre sessioni, mediante load() o File Load Workspace... o avviando R dal file.rdata di interesse. Ditemi che conoscete Latex! Se no, : (...usate WordPad. 6

4. Come si diventa autonomi 2/2 Studiare, studiare e studiare! Cercare il materiale cartaceo ed elettronico, leggerlo e provare a riprodurre cose già fatte per vedere se si sta eseguendo tutto bene Studiare la teoria statistica prima di usare i pacchetti R aiuta mediante - Manuali in pdf, manuali in HTML, documentazione dei package (dall Help)... - Digitando dal prompt uno dei seguenti comandi: help(xxx)? xxx help.search( xxx ) help.start() 7

5. Nozioni di base 1/16 Le principali strutture dati fornite da R sono: Vettori, Matrici, Fattori, Liste e Data frame I vari oggetti che R può maneggiare sono: Character, Numeric, Integer, Logical e Complex Esempi: c(1,4,5): crea un vettore di interi c( A, B, C ): crea un vettore di caratteri c( New York, micio, 7 ): crea un vettore di stringhe c( TRUE, FALSE ): crea un vettore logico 8

Un vettore può 5. Nozioni di base: Vettori numerici 2/16 1. essere assegnato ad una variabile, vecchia o nuova, mediante x1< c(1,2) o x2=c(1,2) o assign( x3,c(1,2)) 2. essere assegnato ad una nuova variabile cancellando il contenuto precedente: y< 2, y< c(3,4) 3. essere concatenato ad altri: z< c(x1,y,9) Le operazioni aritmetiche vengono eseguite mediante simboli standard : +,,, /, sqrt(), log(), exp(),... Altre funzioni comuni, tra cui quelle statistiche, vengono eseguite mediante: sum(x1,y), prod(y), mean(x1), sd(x1), rnorm(n), cor(x1,y), order(x1),... Provate a fare la somma di due vettori di dimensione diversa...scoprirete la cosiddetta Regola del Riciclo. 9

5. Nozioni di base: Vettori logici e di caratteri 3/16 Vettori di caratteri: x < c( A, T, G ), y < c( ATA, GCTCG ) possono essere concatenati: paste( A, T, G, sep= ) Vettori logici: Es.1: x < 1:5; x; y < x > 3; y Es.2: c2 < gatto == topo dove <, <=, >, >=, ==,! = sono gli operatori logici Es.3: c1< c(3,4)>c(2,6); c2< c(1,2)<c(2,8); c1&c2 dove &,,! sono i connettivi logici, che operano elemento su elemento Domanda: Come si accede agli elementi di un vettore? Risposta: Esiste la funzione [ ]. Es: x < c(1:5, NA, NA); x[!is.na(x)] 10

5. Nozioni di base: Fattori 4/16 I fattori sono strutture dati per rappresentare valori che possono assumere solo valori discreti, definiti come livelli. Es: dati qualitativi o dati ordinali. Esempio: trt < factor(rep(c( Control, Treated ),c(3,4))) levels(trt): visualizza i livelli del fattore str(trt): visualizza la struttura del fattore summary(trt): fornisce una tabella delle frq dei livelli 11

Generazioni di matrici: 5. Nozioni di base: Matrici 5/16 - In modo diretto: Es.1: m < matrix(1:12, nrow=4) Es.2: m < matrix(1:12, ncol=4, byrow=true) - Mediante le funzioni cbind ed rbind: x < 1:3, y < 4:6 m < cbind(x,y) oppure m < rbind(x,y) Richiamo dei suoi attributi: length(m); dim(m); mode(m) Richiamo dei suoi elementi: m[1,1]; m[1,]; m[,1]; m[1 : 2,1 : 2] Operazioni semplici e non: +, % %,, t(), diag(), solve()... p.s. Ricorda la regola del riciclo!! Es: m < matrix(1:10,nrow=4) p.s.2 Chi é curioso scopra da solo cosa sono gli array! 12

5. Nozioni di base: Liste 6/16 Le liste rappresentano un insieme ordinato di oggetti (componenti) che possono non essere dello stesso tipo o modo, ad es: un vettore numerico, un valore logico, una matrice, una funzione o anche un altra lista. La lista è quindi una struttura dati ricorsiva. Es.1: li1 < list(true, c(1,3,7,0,9)) Es.2: li2 < list(val=true, vector=c(1,3,7,0,9)) Richiamo/Accesso ai suoi elementi tramite: - un indice numerico: li1[[1]] - il nome delle componenti: li2$val - un indice a caratteri : li2[[ val ]] Si concatenano tramite la funzione c: c(li1,li2) 13

5. Nozioni di base: Data Frame 7/16 Può essere considerato una matrice le cui colonne rappresentano dati eterogenei (variabili con attributi differenti): vettori (numerici, a caratteri, logici), fattori, matrici, liste, altri data frame; Es.: li < list(a=matrix(1:12, nrow=3) v=c( G, G, C ) m < matrix(13:18, nrow=3), daf < data.frame(li,v,m) Si accede ai suoi elementi tramite: un indice numerico: daf[[2]] il nome delle componenti: daf$v un indice a caratteri: daf[[ v ]] un indice a modo matrice : daf[1,2] un indice di espressioni logiche: daf[daf$a.2> 4,] Anche per i data frame si può usare str() e summary() Unica limitazione: le componenti devono avere tutte la stessa lunghezza 14

5. Nozioni di base: Programmi e Funzioni 8/16 Un programma in linguaggio R è costituito da una sequenza di espressioni che vengono valutate dall interprete una alla volta e, se sintatticamente completa, viene ritornato un valore che può essere assegnato ad una variabile I programmi vengono realizzati tramite funzioni che possono essere definite dall utente (Es. 1) o richiamate/caricate da R (Es. 2). Es.1: sum2 < function(x,y) { x+y } sum2(4,7) - x,y sono gli argomenti formali e 4,7 quelli attuali mentre x+y è il corpo della funzione che é un espressione del programma Es.2: Dal prompt digitare sum oppure (1) Dal prompt source( name ) o (2) Dal menu File/Source R code... 15

5. Nozioni di base: Strutture di Controllo 9/16 I programmi sono eseguiti sequenzialmente, istruzione dopo istruzione, ma in alcuni casi il flusso di esecuzione può scegliere vie alternative o ripetersi ciclicamente. In R esistono strutture di controllo specifiche per regolare il flusso di esecuzione di un programma: Blocchi di istruzioni, Istruzioni condizionali e Istruzioni di looping. 1. Blocchi di Istruzioni Le istruzioni possono essere raggruppate insieme utilizzando le parentesi graffe. Una sequenza di istruzioni fra parentesi graffe costituisce un blocco. Es.: {x < 0; y < 1; z < x + y; z + 3; } Si noti che i blocchi vengono valutati solo dopo la chiusura delle parentesi graffe. 16

5. Nozioni di base: Strutture di Controllo 10/16 2. Istruzioni Condizionali: sintassi ed esempi (i) if... else: if (condizione), blocco1, else, blocco2 if (x<=0) {x 2} else {x} Provate a dare x < 2 e poi x < -2 e vedete cosa accade! (ii) La funzione ifelse: ifelse (condizione, a, b) ifelse (x <= 0, x 2, x) (iii) La funzione switch: switch (istruzione, lista) x < 3 switch(x, 2+2, mean(1:100), rnorm(3)) 17

5. Nozioni di base: Strutture di Controllo 11/16 3. Istruzioni di Looping: sintassi ed esempi (i) for: for (nome in v) blocco di istruzioni (v vettore o lista) v=round(runif(50) 5) for(i in 1:5) { (v[i]= M ) } v (ii) while: while (condizione), blocco di istruzioni f < function(y) { i < 0; while (y > 2) { y < y/2; i < i + 1; } i } 18

5. Nozioni di base: Strutture di Controllo 12/16 3. Istruzioni di Looping: sintassi ed esempi (iii) repeat: repeat, blocco di istruzioni f1 < function(y) { i < 0; repeat { if (y <= 1) break; y < y/2; i < i + 1; } i } 19

5. Nozioni di base: Import/Export Dati 13/16 In R esistono diverse funzioni di input/output di file Per maggiori dettagli si consulti il manuale R Data Import/Export disponibile on-line ed installato sulle macchine del laboratorio Facciamo qualche esempio: Es.1: m < matrix(1:6,nrow=2); v < c( B, M ); dati < data.frame(m,v); write.table(dati, file= dati.df ) dati2 < read.table( dati.df ) Es.2: Create una tabella in Excel, salvatela in estensione CSV e caricatela digitando: read.csv(file, header = TRUE, sep =,,...) Es.3: Dal prompt caricate dati in memoria: Es.: data(iris) Es. 4: Per l elenco dei dataset in memoria digitare: data() 20

5. Nozioni di base: L Ambiente Grafico 14/16 R è dotato di un ambiente grafico versatile e facile da usare. Facciamo qualche esempio: x < rnorm(50), plot(x) plot(sin,0,2*pi, type= l,col= blue,main= Funzione seno ) data(iris), plot(iris), boxplot(iris[,1:4], col= yellow ) z < rnorm(100), qqnorm(z) Per la grafica 3D: image, persp, contour Per un esempio di funzioni grafiche in R si esegua: demo(graphics) 21

5. Nozioni di base: Package 15/16 Forniscono uno strumento semplice ed efficiente per gestire collezioni di funzioni e di dati (librerie) Vengono caricati in memoria quando necessario e possono essere scaricati in qualsiasi momento. Funzioni, dati e documentazione sono installati con un singolo comando Estendibili ed adattabili: si possono creare nuovi package (si veda il manuale on line Writing R extensions ) I package possono essere installati: 1. direttamente dal sito CRAN selezionando dal menu Packages della finestra RGui l opzione Install packages from CRAN 2. da file locali compressi selezionando dal menu Packages l opzione Install packages from local zip files 22

5. Nozioni di base: Package 16/16 Analogamente l aggiornamento di package già installati può essere effettuato selezionando l opzione Update packages from CRAN. Per caricare in memoria i package (per poterli utilizzare) si può: 1. Selezionare, dal menu Packages, l opzione Load package 2. Digitare dal prompt: library(nome package) Es: library(), library(cluster) La documentazione sui package installati si trova: 1. Selezionando dal menu Help l opzione HTML help; poi Packages dalla pagina del browser, si sceglie il package desiderato e si accede alle informazioni dettagliate in formato HTML 2. Digitare dal prompt: help(package=xxx) 23

6. Potenzialità e Limiti di R Potenzialità: infinite! Limiti: nessuno se non - le nostre conoscenze teoriche - la nostra fantasia e la nostra creatività 24