Un invito ad approfondire
Giulio DAgostini ` di Roma La Sapienza e INFN Universita Roma, Italy
Sommario
Perch?
R? Perche
un linguaggio di scripting:
non necessita di compilazione adatto ad uso interattivo funzioni ad alto livello
R? Perche
un linguaggio di scripting:
non necessita di compilazione adatto ad uso interattivo funzioni ad alto livello multipiattaforma
R? Perche
un linguaggio di scripting:
non necessita di compilazione adatto ad uso interattivo funzioni ad alto livello multipiattaforma
R? Perche
un linguaggio di scripting:
non necessita di compilazione adatto ad uso interattivo funzioni ad alto livello multipiattaforma
R? Perche
un linguaggio di scripting:
non necessita di compilazione adatto ad uso interattivo funzioni ad alto livello multipiattaforma
R: pro e contro
R: pro e contro
alto livello: funzioni potenti
R: pro e contro
alto livello: funzioni potenti
R: pro e contro
alto livello: funzioni potenti
R: pro e contro
alto livello: funzioni potenti
R: pro e contro
alto livello: funzioni potenti
. . . per fare quello che sa fare (Fortran),C, C++, Java Perl, Php, Python
R: pro e contro
alto livello: funzioni potenti
. . . per fare quello che sa fare (Fortran),C, C++, Java Perl, Php, Python
R: pro e contro
alto livello: funzioni potenti
. . . per fare quello che sa fare (Fortran),C, C++, Java Perl, Php, Python
(ma non possono iniziare con numero) dichiarazioni non necessarie usuali operatori aritmetici: +, -, *, /
(ma non possono iniziare con numero) dichiarazioni non necessarie usuali operatori aritmetici: +, -, *, / operatori logici: ==, >=, <=, !=
(ma non possono iniziare con numero) dichiarazioni non necessarie usuali operatori aritmetici: +, -, *, / operatori logici: ==, >=, <=, != ; per separare istruzioni su stessa riga
(ma non possono iniziare con numero) dichiarazioni non necessarie usuali operatori aritmetici: +, -, *, / operatori logici: ==, >=, <=, != ; per separare istruzioni su stessa riga parentesi graffe { } per raggruppare istruzioni, es. if ( ) { ......}
else if else
else if else for while switch repeat + funzioni speciche: tapply, apply, lapply.
help = help()
le funzioni senza argomento danno loro stesse! (con eccezione delle primitive)
help = help()
le funzioni senza argomento danno loro stesse! (con eccezione delle primitive)
help = help()
le funzioni senza argomento danno loro stesse! (con eccezione delle primitive)
help = help()
le funzioni senza argomento danno loro stesse! (con eccezione delle primitive)
ls(): variabili/funzioni della sessione ls.str(): fornisce ulteriori dettagli help.start() help su browser!
Sessione - 1
R si ricorda quello che abbiamo fatto!
Sessione - 1
R si ricorda quello che abbiamo fatto!
> q()
[y/n/c]:
Sessione - 1
R si ricorda quello che abbiamo fatto!
> q()
[y/n/c]:
.RData .Rhistory
Sessione - 1
R si ricorda quello che abbiamo fatto!
> q()
[y/n/c]:
.RData .Rhistory
Sessione - 1
R si ricorda quello che abbiamo fatto!
> q()
[y/n/c]:
.RData .Rhistory
Pulizia
Sovrascrittura e cancellazione degli oggetti
Pulizia
Sovrascrittura e cancellazione degli oggetti
Ogni assegnazione sovrascrive leventuale oggetto avente
stesso nome: half <- function(x) x/2 (quasi come in C. . . ) half(pi) half <- 1/2
Pulizia
Sovrascrittura e cancellazione degli oggetti
Ogni assegnazione sovrascrive leventuale oggetto avente
stesso nome: half <- function(x) x/2 (quasi come in C. . . ) half(pi) half <- 1/2 esempio rm(half) (attenzione: non chiede conferma!)
Pulizia
Sovrascrittura e cancellazione degli oggetti
Ogni assegnazione sovrascrive leventuale oggetto avente
stesso nome: half <- function(x) x/2 (quasi come in C. . . ) half(pi) half <- 1/2 esempio rm(half) (attenzione: non chiede conferma!)
Comandi di sistema
Interazione con il sistema operativo
Comandi di sistema
Interazione con il sistema operativo
system(comando di sistema)
Comandi di sistema
Interazione con il sistema operativo
system(comando di sistema)
system(date)
Comandi di sistema
Interazione con il sistema operativo
system(comando di sistema)
Comandi di sistema
Interazione con il sistema operativo
system(comando di sistema)
ora <- system(date +%H) minuti <- system(date +%M) source(file di comandi) tipicamente nome file.R
caratteri)
diverso.
mean(x), sd(x)
mean(x), sd(x)
1/sqrt(x), sum(x2)
mean(x), sd(x)
1/sqrt(x), sum(x2)
mean(x), sd(x)
1/sqrt(x), sum(x2)
mean(x), sd(x)
1/sqrt(x), sum(x2)
R gestisce anche valori vuoti, inniti o indeniti dato z <- c(0, NA, 3, 1/0),
quanto fa x/z?
mean(x), sd(x)
1/sqrt(x), sum(x2)
R gestisce anche valori vuoti, inniti o indeniti dato z <- c(0, NA, 3, 1/0),
quanto fa x/z?
mean(x), sd(x)
1/sqrt(x), sum(x2)
R gestisce anche valori vuoti, inniti o indeniti dato z <- c(0, NA, 3, 1/0),
quanto fa x/z?
Graca ( plots.R)
R ha molte funzioni per la graca: plot, istogrammi, etc
Graca ( plots.R)
R ha molte funzioni per la graca: plot, istogrammi, etc
plot(x, ) plot di x Vs numero dordine
Graca ( plots.R)
R ha molte funzioni per la graca: plot, istogrammi, etc
plot(x, ) plot di x Vs numero dordine plot(x,y, ) scatter plot y Vs x
Graca ( plots.R)
R ha molte funzioni per la graca: plot, istogrammi, etc
plot(x, ) plot di x Vs numero dordine plot(x,y, ) scatter plot y Vs x varie opzione di graca, didascalie, etc.
Graca ( plots.R)
R ha molte funzioni per la graca: plot, istogrammi, etc
plot(x, ) plot di x Vs numero dordine plot(x,y, ) scatter plot y Vs x hist(x, ): istogramma varie opzione di graca, didascalie, etc.
Graca ( plots.R)
R ha molte funzioni per la graca: plot, istogrammi, etc
plot(x, ) plot di x Vs numero dordine plot(x,y, ) scatter plot y Vs x hist(x, ): istogramma varie opzione di graca, didascalie, etc. curve(funzione(x), )
graca RC.R
graca RC.R
graca RC.R
graca RC.R
sessione):
graca RC.R
sessione):
Referenze
Sito ufciale googlare R
Download sorgenti/rpm per Unix, binary per Windows Molta documentazione: manuale, intros, etc. inclusi
Conclusioni
Vale la pena di provare buon divertimento! Ulteriori esempi:
mc1.R: MC stima e Teorema Limite Centrale mc lotto.R: MC estrazioni al lotto mc gassiane.R: MC gaussiane
triangolari asimmetriche.