Upload
gregor-gorjanc
View
115
Download
6
Embed Size (px)
DESCRIPTION
Predstavitev za uvod v delo s programom R.
Citation preview
R, Rodica, junij 2010
Uvod v delo s programom
http://www.r-project.org/Gregor Gorjanc
R, Rodica, junij 2010
Današnji plan
• 8:00 - 8:30 Uvod – Kaj je R
• 8:30 - 9:45 Namestitev, osnove in
preživetvena strategija
• 9:45 - 10:00 Odmor
• 10:00 - 12:00 Delo na “mini projektih”
• 12:00 - 13:00 Odmor za kosilo
• 13:00 - 14:30 Delo na “mini projektih”
• 14:30 - 14:45 Odmor
• 14:45 - 16:00 Delo na “mini projektih”
R, Rodica, junij 2010
Uvod – Kaj je R?
R, Rodica, junij 2010
“Okolja za računanje”
• FORTRAN
• C, C++, Java, …, Python
• MATLAB, Scilab, …
• SAS, SPSS, Minitab, S-PLUS, R, …
• Mathematica, …
R, Rodica, junij 2010
Zgodovina R-ja• 80’s: jezik S, Chambers, Wilks, …, AT&T Bell labs
• 93: Raziskovalni projekt (R), Ihaka&Gentleman, NZ
• 95: Na voljo kot odprto-kodni program
• 97: Formiranje “R core” skupine
• 01: R 1.0.0
• 04: Prva konferenca uporabnikov na Dunaju
• 10: R 2.11.0
R, Rodica, junij 2010
Ihaka & Gentleman
R, Rodica, junij 2010
Kaj je R?
• Program za analizo podatkov
• Programski jezik
– “Designed by and for statisticians”
• Delovno okolje
– velik nabor orodij za delo s podatki, analize in grafiko
• Odprto-kodni projekt
– prost, odprt, aktiven
• Združba - http://www.r-project.org
– tisoče razvijalcev in ~2 milijona uporabnikov
– viri (priročniki, navodila, posnetki, blogi, knjige, …) in
pomoč (e-mail, chat, …) za številna področja
R, Rodica, junij 2010
1. Prosta koda
• Odprta koda – licenca GPL kot Linux, …
– “free as in beer”
– “free as in freedom”
• Fleksibilnost
• Odprtost za integracije
– podatki (SAS, SPSS, Excel, Oracle, …)
– sistemi (spletni strežniki, Python, …)
• Razširjen
– “standard” za učenje analize podatkov na
nekaterih področjih
R, Rodica, junij 2010
Linux
R, Rodica, junij 2010
MS Windows
R, Rodica, junij 2010
MS Windows …
R Commander
REvolution
R, Rodica, junij 2010
RKward
Rattle
R, Rodica, junij 2010
Mac OS X
R, Rodica, junij 2010
Na spletu (Apache, …)
http://www.yeroon.net/
R, Rodica, junij 2010
2. Programski jezik
• R = Programski jezik in ne GUI z dialogi
(ampak tudi to je na voljo)
– možnost kombinacije rezultatov
– zanesljivost in ponovljivost rezultatov
• Jezik razvit za analizo podatkov
– “object-oriented”
– številne funkcije
�hiter razvoj aplikacij
R, Rodica, junij 2010
2. Programski jezik – “hitrost razvoja”
• New York Times, nekaj ur po smrti MJ
R, Rodica, junij 2010
3. Statistične metode
• Standardne statistične metode
– regresija, ANOVA, … � lm(), glm(), polr(), …
– analiza preživetja � surv(), …
– nevronske mreže, drevesa, GAM, …
– …
• Objektne funkcije za delo z rezultati (risanje,
izpis, nadaljnje analize, …)
fit <- lm(y ~ x)
yhat <- fitted(fit)
plot(yhat ~ x, type=“l”)
Σ, µ
R, Rodica, junij 2010
3. Statistične metode - novosti
• Najnovejše statistične metode - veliko
raziskav na področju statistike je narejenih v
R-ju
• Nekatera področja izjemno dobro pokrita
– genomika � http://www.bioconductor.org
– finance � www.rmetrics.org
• Tisoče dodatnih paketov
– CRAN � http://cran.r-project.org
– Task views (Bayesian, Econometrics, Finance,
Genetics, Graphics, Optimization, Parallel, …)
R, Rodica, junij 2010
4. “High performance computing”
• R drži vse podatke v RAM-u � veliko hitrejši
kot (stari) S-PLUS
• Osnovne računske funkcije so napisane v
FORTRAN-u in C-ju in “linkane” z R-jem �
hitri izračuni in infrastruktura za optimizacijo
uporabniških funkcij
• Paralelizacija (MPI, NWS, …)� REvolution
– več CPU jeder na en računalnik
– več CPU jeder na več računalnikih (cluster)
• Glej Eddelbuettel_..._2008.pdf
R, Rodica, junij 2010
5. Grafika
R, Rodica, junij 2010
5. Grafika - primeri
R, Rodica, junij 2010
5. Grafika - primeri
R, Rodica, junij 2010
5. Grafika - primeri
R, Rodica, junij 2010
-4 -2 0 2 4 6 8
-4-2
02
46
8
x[,1]
x[,2
]
5. Grafika - primeri
R, Rodica, junij 2010
5. Grafika - primeri
R, Rodica, junij 2010
5. Grafika - galerije
• R Graph Gallery
http://addictedtor.free.fr/graphiques/
• R Graphical Manual (A collection of R
graphics from all R packages)
http://bm2.genes.nig.ac.jp/RGM2
R, Rodica, junij 2010
Namestitev
R, Rodica, junij 2010
Namestitev
1. http://cran.r-project.org
2. Windows
3. base
4. Download R 2.11.1 for Windows
• Preberite “Should I run 32-bit or 64-bit R?”
R, Rodica, junij 2010
Osnove
R, Rodica, junij 2010
Delovno okolje - MS Windows
“Terminal” in “Log”• uporabljajte smerne tipke
• Ctrl+U � izbriše vsebino vrstice
• Ctrl+L � izbriše vso vsebino
“Graph device”
Potreba po dobrem
ASCII editorju !!!
• Notepad++
• TinnR
• REvolution …
R, Rodica, junij 2010
Osnove# Komentar
> 1 + 1
[1] 2
# Funkcije in spremenljivke
> a <- log(1)
> print(a)
[1] 0
# Lastna funkcija
> myFun <- function(x, y) {
+ z <- x + y
+ z / 2
+ }
> myFun(x=1, y=3) # lahko tudi myFun(1, 3)
[1] 2
R, Rodica, junij 2010
Osnove II# Vektorizacija
> myFun(x=c(1, 2, 3), y=3)
[1] 2.0 2.5 3.0
> myFun(x=c(1, 2, 3), y=c(1, 2, 3))
[1] 1 2 3
# Histogram 1000 naključnih vrednosti
> hist(rnorm(n=1000, mean=100, sd=10), main="Hej")
# Data frame
> tabelca <- data.frame(x=rnorm(n=10), y=1:10)
> tabelca
> str(tabelca)
'data.frame': 10 obs. of 2 variables:
$ x: num -0.323 -0.423 -0.996 -0.771 -0.675 ...
$ y: int 1 2 3 4 5 6 7 8 9 10
R, Rodica, junij 2010
Osnove III# Objektno delovanje
> with(tabelca, plot(y ~ x))
# … ali …
> plot(tabelca$y ~ tabelca$x)
> class(tabelca) # veliko pove tudi str()
[1] "data.frame"
> plot(tabelca)
> tabelca <- transform(tabelca, z = y * x)
> str(tabelca)
'data.frame': 10 obs. of 3 variables:
$ x: num -0.323 -0.423 -0.996 -0.771 -0.675 ...
$ y: int 1 2 3 4 5 6 7 8 9 10
$ z: num -0.323 -0.846 -2.989 -3.085 -3.373 ...
> plot(tabelca)
R, Rodica, junij 2010
Osnove IV# Namestitev dodatnega paketa
> install.packages(pkg="effects")
# Naložimo paket
> library(package="effects")
Loading required package: lattice
…
# Linearni model
> mod.pres <- lm(prestige ~ log(income, 10) +
poly(education, 3) +
poly(women, 2),
data=Prestige)
# Priprava objektov
> eff.pres <- allEffects(mod.pres, default.levels=50)
# Narišemo
> plot(eff.pres)
R, Rodica, junij 2010
Preživetvena strategija
R, Rodica, junij 2010
Viri informacij
• Dobra knjiga (glej gradivo), priročnik (CRAN
- Manuals) ali skripta (CRAN -Contributed)
• Sistem pomoči v R-ju# Pomoč za posamezno funkcijo � naučite se brati
# dokumentacijo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> ?log
> help(log) # lahko tudi ??log
# Iskanje funkcij, setov podatkov, …
> help.search("log")
# "Vse" na enem mestu
> help.start()
R, Rodica, junij 2010
Viri informacij II# Examples
> ?example
> example(lm)
# Demos
> ?demo
> install.packages(pkg="plotrix"); library(plotrix)
> demo(topic="plotrix", package="plotrix")
# Vignette (Sweave)
> ?vignette
> install.packages(pkg="doBy"); library(doBy)
> vignette(topic="doBy")
> edit(vignette(topic="doBy"))
R, Rodica, junij 2010
Viri informacij III
• R_Reference_Card.pdf
• CRAN
– FAQ
– Wiki
– Dopisni seznami (mailing-lists)
• R-help, R-devel
• R-SIG-Finance, R-SIG-HPC, R-SIG-mixed-models, …
– Task views
– Search � priporočam Rseek
http://www.rseek.org/
R, Rodica, junij 2010
Sedaj ste na vrsti vi!> help.start()
• Odprite priročnik “An Introduction to R”
• Appendix A: A sample session– berite opis
– kopirajte posamezne vrstice kode v R– izpišite rezultate (objekte) in pregledajte njihovo strukturo s funkcijo str()
• 2 Simple manipulations; numbers and vectors
• 4 Ordered and unordered factors
• 5 Arrays and matrices
• 6 Lists and data frames
• 7 Reading data from files
• 8 Probability distributions
• 9 Grouping, loops and conditional execution
• 10 Writing your own functions
• 11 Statistical models in R
• 12 Graphical procedures