39
R, Rodica, junij 2010 Uvod v delo s programom http://www.r-project.org/ Gregor Gorjanc

Uvod v delo s programom R

Embed Size (px)

DESCRIPTION

Predstavitev za uvod v delo s programom R.

Citation preview

Page 1: Uvod v delo s programom R

R, Rodica, junij 2010

Uvod v delo s programom

http://www.r-project.org/Gregor Gorjanc

Page 2: Uvod v delo s programom R

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”

Page 3: Uvod v delo s programom R

R, Rodica, junij 2010

Uvod – Kaj je R?

Page 4: Uvod v delo s programom R

R, Rodica, junij 2010

“Okolja za računanje”

• FORTRAN

• C, C++, Java, …, Python

• MATLAB, Scilab, …

• SAS, SPSS, Minitab, S-PLUS, R, …

• Mathematica, …

Page 5: Uvod v delo s programom R

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

Page 6: Uvod v delo s programom R

R, Rodica, junij 2010

Ihaka & Gentleman

Page 7: Uvod v delo s programom R

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

Page 8: Uvod v delo s programom R

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

Page 9: Uvod v delo s programom R

R, Rodica, junij 2010

Linux

Page 10: Uvod v delo s programom R

R, Rodica, junij 2010

MS Windows

Page 11: Uvod v delo s programom R

R, Rodica, junij 2010

MS Windows …

R Commander

REvolution

Page 12: Uvod v delo s programom R

R, Rodica, junij 2010

RKward

Rattle

Page 13: Uvod v delo s programom R

R, Rodica, junij 2010

Mac OS X

Page 14: Uvod v delo s programom R

R, Rodica, junij 2010

Na spletu (Apache, …)

http://www.yeroon.net/

Page 15: Uvod v delo s programom R

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

Page 16: Uvod v delo s programom R

R, Rodica, junij 2010

2. Programski jezik – “hitrost razvoja”

• New York Times, nekaj ur po smrti MJ

Page 17: Uvod v delo s programom R

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”)

Σ, µ

Page 18: Uvod v delo s programom R

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, …)

Page 19: Uvod v delo s programom R

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

Page 20: Uvod v delo s programom R

R, Rodica, junij 2010

5. Grafika

Page 21: Uvod v delo s programom R

R, Rodica, junij 2010

5. Grafika - primeri

Page 22: Uvod v delo s programom R

R, Rodica, junij 2010

5. Grafika - primeri

Page 23: Uvod v delo s programom R

R, Rodica, junij 2010

5. Grafika - primeri

Page 24: Uvod v delo s programom R

R, Rodica, junij 2010

-4 -2 0 2 4 6 8

-4-2

02

46

8

x[,1]

x[,2

]

5. Grafika - primeri

Page 25: Uvod v delo s programom R

R, Rodica, junij 2010

5. Grafika - primeri

Page 26: Uvod v delo s programom R

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

Page 27: Uvod v delo s programom R

R, Rodica, junij 2010

Namestitev

Page 28: Uvod v delo s programom R

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?”

Page 29: Uvod v delo s programom R

R, Rodica, junij 2010

Osnove

Page 30: Uvod v delo s programom R

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 …

Page 31: Uvod v delo s programom R

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

Page 32: Uvod v delo s programom R

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

Page 33: Uvod v delo s programom R

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)

Page 34: Uvod v delo s programom R

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)

Page 35: Uvod v delo s programom R

R, Rodica, junij 2010

Preživetvena strategija

Page 36: Uvod v delo s programom R

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()

Page 37: Uvod v delo s programom R

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"))

Page 38: Uvod v delo s programom R

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/

Page 39: Uvod v delo s programom R

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