Linguaggio R Raffaele Miele Dipartimento di Matematica e Statistica Università degli Studi di Napoli Federico II

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

Dipartimento di Informatica ITIS Leonardo da Vinci Carpi 2011
Introduzione al linguaggio R
ESERCITAZIONE R 12,19 marzo 2012 Mario Mastrangelo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2013 Marco D. Santambrogio – Gianluca Durelli -
Sistema operativo MS-DOS
Programmazione in Java
Corso di Fondamenti di Informatica
Introduzione al linguaggio R
Code::Blocks Ambiente di sviluppo.
Code::Blocks Ambiente di sviluppo.
Da Unix a Linux Alessio Coraci V Dp.
Connessione con MySQL.
GLUT & OpenGL Ing. Tommaso Coviello Politecnico di Bari
Dr. Giovanni Stracquadanio
Dopo aver completato la nostra animazione su Pivot ci siamo chieste come poter fare un video in modo che anche chi non ha scaricato Pivot possa vedere.
La statistica ufficiale incontra… la comunità degli sviluppatori di software per la statistica Di quali innovazioni nel software per la statistica abbiamo.
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Process synchronization
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Laboratorio di Linguaggi note sull'uso dell' IDE DevC++ Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
OPEN OFFICE e IMPRESS Masucci Antonia Maria.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Struttura dei sistemi operativi (panoramica)
Corso di Informatica A.A
Unalternativa a Microsoft Office OpenOffice Author Kristian Reale Rev by Kristian Reale Liberamente distribuibile secondo i termini della licenza.
Analisi ed ottimizzazione di strumenti Software per l'utilizzo di IDL sulla GRID ENEA S.PI.1.2 Strumenti per la grafica Marta Chinnici Portici, 11 Dicembre.
Introduzione al linguaggio R
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Un approccio costruttivista alla geometria
Software Libero Open-Source: Introduzione a Debian.
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
RISORSE WEB Internet Per un uso consapevole delle risorse della Rete
I SISTEMI OPERATIVI.
Realizzazione siti web Pagine web dinamiche - javascript.
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Per costruire unapplicazione occorre compilare il file (o i file se più duno) che contengono il testo del programma (file sorgente) Il risultato sono uno.
Inserire il CDROM CygWin nel lettore, aprite la directory cyg e lanciare in esecuzione (con un doppio click del pulsante sinistro del mouse sulla relativa.
Esempi di analisi dati con ROOT
MODULO 01 Unità didattica 04
PROGRAMMARE IN C Un ambiente di sviluppo `e un software che serve per scrivere ed eseguire programmi. Generalmente integra almeno 3 funzionalita’: Editor:
Modulo 1 – Diritto dautore e aspetti giuridici u.d. 8 (syllabus – 1.8.2)
Introduzione a XI Conferenza nazionale di Statistica febbraio 2013 Pillole formative di statistica.
Il Sistema Operativo (1)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
User stories Claudio Maccari Mail:
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2014 Marco D. Santambrogio – Gianluca Durelli -
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
I DATABASE.
Lettura e analisi statistiche dei dati e computer analysis
MODULO 01 Unità didattica 04
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Star Office è una suite di software di produttività personale commercializzata da Sun Microsystems. StarOffice nasce come software commerciale sviluppato.
Informatica Applicata al Suono Tutorial Matlab
Software Libero e Open Source. Open Source Open Source è un termine inglese che significa sorgente aperto, e indica un programma per computer (software)
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
CMS per la scuola con JOOMLA
Informatica e Informatica di Base
Di Pietro Demurtas. È il nome di un pacchetto statistico implementato a partire dai primi anni ‘90 da Ihaka e Gentleman. È un linguaggio di programmazione.
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
Programmazione orientata agli Oggetti Introduzione a Java.
COMPONENTI DI UN SISTEMA INFORMATICO HardwareSoftware Parte fisicaComponenti logiche Componenti fisiche (elettroniche e meccaniche) di un computer Istruzioni.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Linguaggio R Raffaele Miele Dipartimento di Matematica e Statistica Università degli Studi di Napoli Federico II

Il forum

Perché R? E' un linguaggio di scripting Non necessita di compilazione Adatto ad uso interattivo Funzioni ad alto livello Multipiattaforma Gratuito (derivato da S-Plus) Open source Specializzato per uso statistico Pensato per descrivere modelli anche molto complessi E un linguaggio object-oriented (può facilmente essere esteso dallutente)

Pro e contro di R Alto livello implica: Funzioni potenti, ma solo per quello che R sa fare. Poco potente e flessibile per il resto (meglio linguaggi di programmazione come C++, Java, etc.). Ottimo per applicazioni statistiche di piccole e medie dimensioni.

Open Source La licenza open source prevede che il software venga fornito sia nel formato compilato (eseguibile) che in quello sorgente. Sul sorgente può lavorare chiunque sia disponibile a farlo, a titolo gratuito. Su di esso chiunque può eseguire delle modifiche e, nel caso lo faccia, è tenuto a distribuire il nuovo sorgente insieme con il programma nella forma eseguibile.

Ottenere R Sito di riferimento : Questo sito è una vera e propria miniera di informazioni e materiale su R. Da questo sito è possibile Scegliere un mirror da cui scaricare R (disponibile per diverse piattaforme) Scaricare documentazione. Scaricare componenti da integrare con R

Storia di R Dagli anni settanta sono state sviluppate tecniche statistiche che richiedono un notevole supporto computazionale al fine di essere fruibili. Negli anni novanta i Bell Laboratories hanno deciso di sviluppare un nuovo ambiente per l'analisi statistica in grado di permettere, oltre l'applicazione delle metodologie conosciute, anche la sperimentazione di nuovi modelli ed idee statistiche. Nasce quindi il linguaggio S

Storia di R Il linguaggio S venne poi concesso alla Insightful Corporation che ne ha fatto un software di successo noto come S-Plus. Di recente, grazie all'avvento di Internet, è nato il progetto open source R. R ed S-Plus sono altamente compatibili. S-Plus è usato maggiormente nelle aziende R è usato nelle università e nei centri di ricerca

Linterfaccia di R R è stato pensato essere utilizzato tramite riga di comando Esistono anche interfacce grafiche, ma sono limitate alle semplici operazioni ricorrenti (leggere files, etc.) Sotto windows usiamo la R-console Sotto unix usiamo la shell.

Avviamo R… …e siamo a contatto con la console. Tutti i comandi vanno inseriti dopo il promptprompt R ci ricorda che possiamo uscire tramite il comando q()

Workspace R salva tutte le variabili frutto di elaborazione in unarea di memoria nominata, per lutente, workspace. E possibile salvare il workspace alluscita di R in maniera tale da poter continuare il lavoro da dove lavevamo lasciato. I dati vengono salvati nei file.RData e.RHistory Con il comando ls() visualizziamo il contenuto del workspace. Con ls.str() abbiamo più dettagli.

Working directory R, per default, salva i dati nella directory corrente (la directory da cui è stato avviato).default Tramite il comando setwd(nuovaDirectory) possiamo cambiare tale directory. Tramite il comando getwd() visualizziamo tale directory. Con il comando dir() visualizziamo il contenuto della working directory. E una buona cosa creare directory diverse per diversi progetti.

Basi del linguaggio R è case sensitive (Pippo pippo) Non è necessario dichiarare una variabile Operatori aritmetici usuali: +,-,*,/ Operatori logici: ==, >=, <=, != Parentesi graffe per raggruppare istruzioni ; per separare le istruzioni

Help di R Lhelp di R è molto potente help() - indicazioni su come usare lhelp help(comando) – oppure ?comando help help() – usare le parentesi!!! example(comando) – provare per credere! demo(comando) – idem come sopra. Per gli operatori e le parole chiave dei costrutti di programmazione è necessario mettere largomento tra apici. es. help(+) oppure help(for)

Help di R Con il comando help.search(exp) è possibile cercare nellhelp gli argomenti che soddisfano lespressione regolare exp fornita al comando. lespressione regolare Il comando apropos(exp) visualizza i comandi il cui nome soddisfa exp Guardate cosa fa R se digitiamo help.start()…

Output in un file Con il comando sink(out.txt) si dirotta loutput dei comandi R che digitiamo nel file out.txt Per tornare a vedere loutput in console digitiamo sink()

Basi del linguaggio Sintassi di un comando R: Variabile/oggetto <- comando(par1, par2, …) Il simbolo <- è usato al posto delluguale (=) R supporta il segno = ma ne sconsiglia luso E disponibile anche il comando assign (vedi help(assign)). E utile negli script per le assegnazioni multiple. Se non specifichiamo la variabile destinazione il risultato viene tenuto nella variabile.Last.value Premendo i tasti freccia su e freccia giu possiamo navigare nella command history (la lista dei comandi eseguiti precedentemente)

Parametri E possibile passare i parametri alle funzioni R nellordine prestabilito oppure specificando vari nomi. Esempio: a <- matrix(1:3) a <- matrix(data=1:3) I due comandi sono equivalenti

Pulizia Ogni assegnazione in R sovrascrive il contenuto della variabile di destinazione. Gli oggetti possono essere rimossi con il comando rm(oggettoDaCancellare) rimozioni multiple rm(pippo,pluto, x1) con rm(list=ls()) svuotiamo il workspace

Interagire con il sistema operativo system(applicazione) avvia unapplicazione es: system(notepad) Per eseguire script R si usa il comando source source(nomeScript) es: source(fwdTree.R)

Variabili > a <- 49 > sqrt(a) [1] 7 > b <- "The dog ate my homework" > sub("dog","cat",b) [1] "The cat ate my homework " Numeriche Stringhe

Tipi booleani Variabili che possono avere solo due valori. In R i valori si indicano con : TRUE oppure T FALSE oppure F Il comando matrix accetta un parametro booleano……

Missing values R gestisce i valori mancanti. Simbolo: NA (not assigned) NA non equivale a 0 NA non equivale a Na non equivale a TRUE o FALSE

Vettori e variabili R permette di lavorare con dati strutturati. I tipi più semplici sono gli scalari e i vettori. x <- 4; # per assegnare uno scalare a x x <- c(1,2,3,4,5,6); # per assegnare un vettore tutto quello che cè dopo il segno # è visto come commento Il comando c() concatena gli elementi forniti come parametri

Matrici Situazione: x <- c(2,4); y <- c(2,4); Se digitiamo x * y otteniamo 4 16

Matrici Se vogliamo usare laritmetica dellalgebra lineare dobbiamo usare loperatore %*% R interpreta i vettori come vettori colonna La trasposizione di un vettore (o di una matrice) si ottiene tramite il comando t() Quindi t(y) %*% y mi restituisce 20 Per convenzione loperazione y %*% y equivale a t(y) %*% y

Comando Matrix Per creare una matrice ex-novo usiamo il comando matrix(data, nrow, ncol, byrow ) Consultare lhelp…….

Matrici Situazione: x <- matrix(c(1,2,3,4),1,4); y <- matrix(c(1,2,3,4),4,1); Se faccio x * y R mi restituisce un errore. Ragione: x e y sono due vettori, quindi non è possibile usare gli operatori che eseguono operazioni termine a termine. Usare x %*% y Provare help(+);

Matrici Con il comando diag(matrice) otteniamo un vettore con la diagonale della matrice Se diamo un numero k in pasto al comando diag questo ci restituisce la matrice identità di ordine k i comandi lower.tri e upper.tri permettono di estrarre la triangolare inferiore e superiore. Consultare lhelp per capire come funzionano…

Matrici Per calcolare linversa di una matrice B <- solve(A) provare A %*% B Per calcolare il determinante di una matrice det(A)

Operatori più uasti Assign <- Exponent ^ Integer division (restituisce valore intero) %/% Dot product (prodotto matriciale) %*% Mod % Division / Multiplication * Difference - Sum +

Vettori di indici Serviranno ad accedere agli elementi di altri vettori. x <- 1:5; oppure lequivalente seq(1,5); generano sequenze di numeri è possibile specificare anche il passo help(seq) per i dettagli…… cercare anche in help.start() anche il comando rep() è interessante

Vettori e matrici Creare un vettore sequenza sequenza <- -3:8; e carichiamone i valori in una matrice A <- matrix(sequenza, 2,6); Per accedere agli elementi di un vettore (o una matrice) sequenza[3] oppure A[2,3]

Vettori e matrici Per estrarre una riga da una matrice A[1,] #estrae la prima riga Per estrarre una colonna A[,2] #estrae la seconda colonna

Which Il comando which estrae gli indici di tutti gli elementi di un vettore (o di una matrice) che soddisfano una condizione. which(condizione) Es. a <- which(x < 2) restituisce le posizioni di tutti gli elementi del vettore x di valore inferiore a 2 Che succede se digito x[which(x < 2)] ?

Operatori per le condizioni Is equal == Less or = <= Greater or = >= Less < Greater > Not equal != Not ! And & Or | Provare a scrivere condizioni più complesse……

Salvare il contenuto del workspace Usiamo il comando save save.image() salva tutto il contenuto del workspace in.RData nellc directory corrente save(x, A, file=prova.R) memorizza nel file prova.R il contenuto delle variabili x e A save(list=ls(), file=prova.R) cosa fa? load(prova.R) carica le variabili in memoria

Oggetti e tipologie di dati Ogni cosa in R èun oggetto ed ogni oggetto appartiene ad una classe Nomi degli oggetti: sequenze di lettere e numeri Un nome non può iniziare con un numero ……..

Liste E un vettore (contenitore) di oggetti esempio nomi <- c(pietro, francesco, walter); # nomi x <- c(7,3,29); # numero esami bool <- c(T,F,F); # frequenta con il comando lista <- list(nomi, x, bool) carichiamo il tutto nella lista per accedere agli elementi della lista (es. vettore x) lista$x E anche possibile usare la seguente sintassi lista[[1]]# primo elemento

Di che tipo sono i miei dati? str(oggetto) – informazioni sulla struttura mode(oggetto) – tipo di oggetto names(lista) – nomi degli oggetti contenuti in lista R offre anche svariate funzioni che indicano se una variabile contiene un oggetto di un determinato tipo. (es: is.matrix(), is.numeric(), is.list()). Consultiamo lhelp.

Factor I dati qualitativi in R sono gestiti da oggetti chiamati factor lattributo order indica se I dati sono su scala ordinale es. eta <- c(giovane, anziano, adulto, adulto, adulto); facEta <- factor (eta);

Ordered factor ordered(facEta, levels= levels=c(giovane, adulto, anziano); oppure facEta <- factor(eta, levels=c(giovane, adulto, anziano));

Ricodificare le modalità di un factor genere <- c(1,2,2,2,2,1,1,2,2,2) facGenere <- factor(genere) se digitiamo: facGenere ed R visualizza i livelli Levels: 1 2 possiamo ricodificarli con levels(facGenere) <- c(maschio, femmina);

Dataframe E loggetto più utilizzato, sotto R, per indicare la matrice dei dati. Immaginiamo di avere 3 variabili: nome di tipo factor altezza di tipo numeric colore.occhi di tipo factor Con il comando dati <- data.frame(Nome = n, Altezza = a, Colore.occhi= c); Carichiamo i dati in un dataframe N.B. le variabili caricate nel dataframe devono avere lo stesso numero di elementi!!!

Dataframe Per accedere agli oggetti di un dataframe digitiamo: dati$Nome con il comando attach(dati) possiamo evitare di dover scrivere dati&… per accedere alle variabili del dataframe Con il comando detach(dati) ripristiniamo la situazione iniziale

Importare i dati da file di testo R usa il comando scan, che però ha una sintassi piuttosto complessa. Il comando read.table(data=dati.txt, header=TRUE, sep=,, row.names=7) legge i dati dal file dati.txt estrae le etichette delle variabili dalla prima riga usa il carattere, per separare I campi usa la colonna 7 come etichette delle righe un separatore molto diffuso è la tabulazione, che si indica con \t Esiste anche il comando write.table()

Formato fisso Istruzione read.fwf(file=dati.txt, width=c(3,3,1,2), sep=\n); legge dal file dati.txt dimensione dei campi indicata dal parametro width separatore di riga \n (a capo)

Installare ed utilizzare nuove librerie Dal sito del CRAN (Comprehensive R archive network) è possibile scaricare una grande quantità di package R. Un package è una raccolta di funzioni per R. Dal sito del CRAN si possono scaricare I packages ufficiali, è possibile trovare sul web moltissimi altri packages scritti da ricercatori. Il sito ad esempio, contiene software R per lanalisi del genoma umano.

Installare packages Dallinterfaccia grafica di R: menu Packages – install packages…… è possibile installare direttamente dal sito del CRAN oppure da files zip in locale. Una volta installato il package lo si deve richiamare tramite il comando library. es. library(forward) Richiama il package per lanalisi robusta tramite la Forward Search

Comando data I package R sono spesso corredati di dataset. Per ottenere una lista dei dataset inclusi in un package digitiamo: data(package=nomePackage); Per elencare i inclusi in tutti I packages in memoria digitiamo data() Per caricare in memoria un dataset (dopo aver caricato il package corrispondente) digitiamo: data(nomeDataset)

Distribuzioni di frequenza Carichiamo il dataset iris dal package forward Con il comando table otteniamo la distribuzione di frequenza table(iris$Species) per avere le frequenze relative digitiamo: table(iris$Species)/length(iris$Species) Che fa il comando cumsum?

Variabili quantitative Con il comando cut raggruppiamo le unità di una variabile quantitativa. Con range(iris[[1]]) otteniamo il campo di variazione della prima variabile del dataset iris. Poi con cut(iris[[1]], breaks=c(4.3,6,7.9)) Dividiamo le unità. Osserviamo il risultato…. Proviamo anche table(cut(iris[[1]], breaks=c(4.3,6,7.9))) Vedere anche il comando hist()

Produrre grafici R fornisce un vasto corredo di funzioni per produrre grafici. esempi: pie(table(iris[[5]])) # grafico a torta hist(iris[[1]]) # per variabili quantitative plot(x<-seq(-100,100), x^2) Molti package R implementano dei propri metodi plot per visualizzare loutput delle analisi.

Funzioni utilizzate di frequente # values length Max integer in floor Concatenate vectors cbind, rbind Counts table Concatenate c Minimum min Maximum max # rows, cols dim TRUE indices which Round round c() as char paste Sort, order, rank a vector Sort, order, rank Repeat over rows, cols apply Print as char cat Show value print Generic stats summary

Funzioni statistiche Linear algebra svd, qr, chol, eigen Scale statistics var, cor, cov, mad, range Location statistics mean, median Normal distribution random sample, density, cdf and quantiles rnorm, dnorm, pnorm, qnorm Model fitting lm, glm, anova Smooth curve fitting loess, lowess Resampling (bootstrap, permutation) sample Random number generation.Random.seed

Funzioni grafiche spesso utilizzate Plotting parameters (lots!) par Add a legend legend Generic plot eg: scatter plot Add points points Add lines lines, abline Use colors colors, palette Add box around all axes box Add axes axis Add text text, mtext

Costrutto If if (condizione) { statements } else { alternative statements } else è opzionale

Cicli Utili per ripetere azioni simili (o la stessa azione) più volte. Es. tutti gli elementi di una lista o tutte le colonne di un array for(i in 1:10) { print(i*i) } i<-1 while(i<=10) { print(i*i) i<-i+sqrt(i) } Vedi anche: repeat, break, next

Scrivere funzioni R Scrivere le istruzioni in un file allinterno della seguente dichiarazione: nomefunzione <- function(par1, par2, par3… ) { …istruzioni… } (par1, par2, etc. sono i parametri che la funzione accetta in input) tale funzione sarà richiamabile utilizzando il comando source(nomeFunzione); n.b. il file deve essere raggiungibile (deve stare nella working directory oppure va specificato il percorso completo…attenti al separatore di directory….vedi manuale di R)

Scrivere funzioni R esempio: copiare il seguente codice in un file di testo dal nome add.R: add <- function(a,b) { result <- a+b return(result) } per caricare la funzione in memoria digitiamo source(add.R) Se digitiamo ls() vediamo, in memoria anche la funzione add. Con str(add) vediamo che è una funzione per usare la funzione digitiamo add(3,4) ed ammiriamo loutput…….