R (programovací jazyk)

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
R
Logo
Vývojář R Development Core Team
Aktuální verze 3.0.2
Operační systém multiplatformní
Typ softwaru prostředí pro statistickou analýzu a zobrazení dat
Licence GNU General Public License
Web www.r-project.org

R je programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení. Jde o implementaci programovacího jazyka S pod svobodnou licencí. Protože je zdarma, R již předstihlo počtem uživatelů komerční S a stalo se faktickým standardem v řadě oblastí statistiky.

Funkce prostředí lze rozšířit pomocí knihoven označovaných jako balíčky (packages). Pro verzi 2.10 jich bylo v říjnu 2009 v centrálním repozitáři CRAN k dispozici přibližně 2000.[1] Příkladem často používaného balíku je ggplot2 pro zobrazení dat.

Používá se z příkazového řádku, existuje však několik frontendů s grafickým rozhraním jako RKWard, RStudio, R Commander nebo rozšíření do OpenOffice.org Calcu R4Calc.

R bývá také propojováno či využíváno v komerčních softwarech, např. v prostředí SPSS mohou uživatelé přímo psát a spouštět programy v jazyce R nad otevřenými daty.

Statistické funkce[editovat | editovat zdroj]

R poskytuje širokou škálu statistických a grafických technik, včetně lineárního a nelineárního modelování, klasické statistické testy, analýzy časových řad, klasifikaci, shlukování, a další. R je snadno rozšiřitelný pomocí funkcí a rozšíření, a R komunita je známá pro její aktualizaci příspěvků, pokud jde o balíčky. Tam jsou některé důležité rozdíly, ale kód psaný pro S běží beze změny. Mnoho standardních funkcí R jsou zapsány do samotného výzkumu, což usnadňuje uživatelům sledovat algoritmické provedené volby. Pro výpočetně náročné úlohy, C, C++ a Fortran lze kód propojit a zavolat v době běhu. Pokročilí uživatelé mohou psát C, C++ nebo Java Kód manipulovat R objekty přímo. R je vysoce rozšiřitelný pomocí uživatelem definovaných balíčků pro konkrétní funkce, nebo v určitých oblastech studia. Díky svému S dědictví, má silnější objektově orientované programování než většina statistických počítačových jazyků. Rozšíření R je také zmírněno jeho lexikálním určovaním pravidel. Další silnou stránkou výzkumu jsou statické grafiky, které mohou produkovat grafy, včetně matematických symbolů. Dynamická a interaktivní grafika je dostupná prostřednictvím dalších balíčků. R má svůj vlastní LaTeX, jako je formát dokumentace, který se používá jako komplexní dokumentace, a to jak on-line v mnoha formátech a v tištěné podobě.

Funkce programování[editovat | editovat zdroj]

R je interpretovaný jazyk, uživatelé obvykle přistupují pomocí příkazového řádku interpretu. Pokud na vstup uživatel zadá " 2 +2 " na příkazovém řádku R a potvrdí entrem ,počítač odpoví " 4 ", jak je uvedeno níže :

> 2 +2
[1 ]: 4

Stejně jako jiné podobné jazyky, jako je APL a MATLAB, R podporuje matice. Datová struktura programovacího jazyka R vkládá skaláry, vektory, matice, datové rámce (podobně jako tabulky v relační databázi a seznamy). rozšiřitelný objekt – systém R zahrnuje objekty (mimo jiné): regresní modely, time -series a geo – prostorových souřadnic.

R podporuje procedurální programování s funkcemi, a pro některé funkce objektově orientované programování s generickými funkcemi. Generické funkce se chovají odlišně v závislosti na typu předaných argumentů k němu. Jinými slovy generická funkce odešle funkci specifickou pro daný typ objektu. Např. R má generickou funkci "print ()", která umožňuje vytisknout téměř každý druh objektu s jednoduchou "print(JménoObjektu)" syntaxí.

I když je většinou používán statistickými a jinými praktikami, které vyžadují prostředí pro statistické výpočty a vývoj softwaru, R může také fungovat jako výpočetní všeobecná matice – výkonností srovnatelné s GNU Octave nebo MATLAB.

Příklady[editovat | editovat zdroj]

Příklad 1[editovat | editovat zdroj]

Následují příklady ilusrtují základní syntaxi jazyka a použití příkazového řádku

> x <- c(1,2,3,4,5,6) # Create ordered collection (vector)
> y <- x^2 # Square the elements of x
> print(y) # print (vector) y
[1] 1 4 9 16 25 36
> mean(y) # Calculate average (arithmetic mean) of (vector) y; result is scalar
[1] 15.16667
> var(y) # Calculate sample variance
[1] 178.9667
> lm_1 <- lm(y ~ x) # Fit a linear regression model "y = f(x)" or "y = B0 + (B1 * x)"
                        # store the results as lm_1
> print(lm_1) # Print the model from the (linear model object) lm_1
 
Call:
lm(formula = y ~ x)
 
Coefficients:
(Intercept) x
     -9.333        7.000
 
> summary(lm_1) # Compute and print statistics for the fit
                         # of the (linear model object) lm_1
 
Call:
lm(formula = y ~ x)
 
Residuals:
1 2 3 4 5 6
3.3333 -0.6667 -2.6667 -2.6667 -0.6667 3.3333
 
Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept) -9.3333 2.8441 -3.282 0.030453 *
x 7.0000 0.7303 9.585 0.000662 ***
---
Signif. codes: 0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
 
Residual standard error: 3.055 on 4 degrees of freedom
Multiple R-squared: 0.9583,	Adjusted R-squared: 0.9478
F-statistic: 91.88 on 1 and 4 DF, p-value: 0.000662
 
> par(mfrow=c(2, 2)) # Request 2x2 plot layout
> plot(lm_1) # Diagnostic plot of regression model

Diagnostic graphs produced by plot.lm() function. Features include mathematical notation in axis labels, as at lower left.

Příklad 2[editovat | editovat zdroj]

Tento příklad ukazuje:

  • Využití externích knihoven(packages), v tomto případě caTools package
  • Manipulace s komplexními čísly
  • Vícerozměrná pole čísel používaných jako základní datový typ, viz proměnné C, Z a X.
library(caTools) # external package providing write.gif function
jet.colors <- colorRampPalette(c("#00007F", "blue", "#007FFF", "cyan", "#7FFF7F",
                                 "yellow", "#FF7F00", "red", "#7F0000"))
m <- 1200 # define size
C <- complex( real=rep(seq(-1.8,0.6, length.out=m), each=m ),
              imag=rep(seq(-1.2,1.2, length.out=m), m ) )
C <- matrix(C,m,m) # reshape as square matrix of complex numbers
Z <- 0 # initialize Z to zero
X <- array(0, c(m,m,20)) # initialize output 3D array
for (k in 1:20) { # loop with 20 iterations
  Z <- Z^2+C             # the central difference equation
  X[,,k] <- exp(-abs(Z)) # capture results
}
write.gif(X, "Mandelbrot.gif", col=jet.colors, delay=1000)

"Mandelbrot.gif" – Graphics created in R with 14 lines of code in Example 2

Příklad 3[editovat | editovat zdroj]

Návratová hodnota lokální funkce může mít jakýkoliv datový typ

functionname <- function(arg1, arg2, ... ){ # declare name of function and function arguments
statements # declare statements
return(object) # declare object data type
}

Balíčky[editovat | editovat zdroj]

Schopnosti R jsou rozšířeny pomocí uživatelem vytvořených balíčků, které umožňují specializované statistické techniky, grafické zařízení (ggplot2), import / export funkce, hlášení nástroje (knitr, Sweave), atd. Tyto balíčky jsou vyvíjeny především v oblasti výzkumu, a někdy v Java, C a Fortran. Sada balíčků je součástí instalace R, s 5300 dalších balíčků (jak dubna 2012), které jsou k dispozici na Comprehensive R Archive Network (CRAN), Bioconductor a dalších úložišťích. "Zobrazení úloh" – na internetových stránkách CRAN uvádí širokou škálu aplikací (finance, genetika, strojové učení, Medical Imaging, sociální vědy a Spatial Statistics), ke kterému R byla použita, a pro které jsou k dispozici balíčky. Další zdroje balíčků R patří Crantastic, je komunitní web pro hodnocení a přezkoumání všech balíčků Cran, a také R-Forge, centrální platformu pro spolupráci na vývoji R balíčků, R-souvisejících softwarů, a projektů. Zobazuje mnoho nepublikovaných, beta balíčků a vývoj verze Cran balíčků. Bioconductor Projekt poskytuje R balíčky pro analýzu genomických dat, jako Affymetrix a cDNA microarray data, zpracování a analýzu objektově orientovaných nástrojů, a začal poskytovat nástroje pro analýzu dat z nové generace vysoce výkonných sekvenčních metod. Reprodukovatelný výzkum a automatické generování reportů může být provedeno s balíčky, které podporují provádění kódu R vloženého do LaTeXu, formátu OpenDocument atd..

Milníky[editovat | editovat zdroj]

Kompletní seznam změn je udržován v NEWS souboru. Některé vlastnosti jsou uvedeny níže.

  • Verze 0.16 – Toto je poslední alfa verze vyvinuta společností "Ihaka and gentleman". Hodně základních funkcí z tzv. "Bílé knihy" (viz S historie) bylo realizováno. The mailing konference byla zahájena 1. dubna 1997.
  • Verze 0.49 – 23. dubna 1997 – Jedná se o nejstarší k zdroj, který kompiluje na omezeném počtu Unix-jako platformy. CRAN začala tímto datem se 3 zrcadly, které zpočátku "hostovaly" 12 balíčků. Alpha verze R pro Microsoft Windows a Mac OS byla k dispozici krátce po této verzi.
  • Verze 0.60 – 05.12.1997 – R se stane oficiální součástí projektu GNU. Kód je hostitelem a udržováno na CVS.
  • Verze 1.0.0 – 29. února 2000 -. Stanoveno vývojáři jako dostatečně stabilní pro použití ve výrobě.
  • Verze 1.4.0 – S4 metody jsou zavedeny a první verze pro Mac OS X je k dispozici brzy poté.
  • Verze 2.0.0 – 4. října 2004 – představil "lazy loading", což umožňuje rychlé načtení dat s minimálními náklady systémové paměti.
  • Verze 2.1.0 – Podpora UTF-8 kódování, a počátky internacionalizace a lokalizace pro různé jazyky.
  • Verze 2.11.0 – 22. dubna 2010 – Podpora pro Windows 64 bitové systémy.
  • Verze 2.13.0 – 14. dubna 2011 – Přidání nového kompilátoru funkce, která umožňuje urychlení funkcí převedením do byte-kódu.
  • Verze 2.14.0 – 31. října 2011 – Přidány povinné obory názvů pro balíčky. Přidán nový paralelní balíček.
  • Verze 2.15.0 – 30. března 2012 – New load balancing funkce. Vylepšená rychlost serializace pro dlouhé vektory.
  • Verze 3.0.0 – 03.04.2013 – Podpora pro číselné hodnoty indexu 2 31 a větších 64 bitových systémech.

Rozhraní[editovat | editovat zdroj]

Grafické uživatelské rozhraní[editovat | editovat zdroj]

  • Deducer – GUI pro řízení analýzy dat (podobně jako SPSS / JMP / Minitab).
  • Java GUI pro R – cross-platform stand-alone R terminál a editor založený na Javě (také známý jako JGR).
  • Rattle GUI – cross-platform GUI založený na RGtk2 a speciálně pro dolování dat.
  • R Commander – cross-platform pomocí menu GUI založeném na tcltk (několik plug-inů do Rcmdr je také k dispozici).
  • Revolution Analytics poskytuje IDE založené na Visual Studio a má plány na webové bázi bodu.
  • RExcel – pomocí R a Rcmdr v rámci aplikace Microsoft Excel.
  • RGUI – přichází s pre-zkompilovanou verzi R pro Microsoft Windows.
  • RKWard – rozšiřitelný GUI a IDE pro R.
  • RStudio – multiplatformní open source IDE (který může také být spuštěn na vzdáleném linux server).
  • RWe umožňuje využití schopností dolování dat ve Weka a statistických analýz v R.
  • Tinn-R – open source, velmi schopný integrovat vývojové prostředí představovující zvýraznění syntaxe podobné jako MATLAB. K dispozici pouze pro Windows

Zde je zvláštní otázka věstníku statistického softwaru, který pojednává o GUI pro R

Skriptovací jazyky[editovat | editovat zdroj]

Funkce R byla zpřístupněna z několika skriptovacích jazyků jako je Python (podle RPY balíčku rozhraní), Perl (pomocí statistik :: R modul), Ruby (s rsruby rubygem), a F # (s F # R Typ Provider). Skriptování v oblasti výzkumu samotném je možné prostřednictvím Littler, jakož i prostřednictvím RDEMO.

user! konference[editovat | editovat zdroj]

"user!" je pojem daný na oficiální výročním setkání uživatelů R. První takovou akcí byl user! 2004 v květnu 2004 ve Vídni. Po přeskočení 2005, uživatelské konference se konají každoročně, zpravidla střídavě v různých místech Evropy a Severní Ameriky. Další konference:

  • User! 2006, Vídeň, Rakousko
  • User! 2007, Ames, Iowa, USA
  • User! 2008, Dortmund, Německo
  • User! 2009, Rennes, France
  • User! 2010, Gaithersburg, Maryland, USA
  • User! 2011, Coventry, Velká Británie
  • User! 2012, Nashville, Tennessee, USA
  • User! 2013, Albacete, Španělsko
  • User! 2014, Los Angeles, USA

Srovnání s SAS, SPSS a stata[editovat | editovat zdroj]

R (programovací jazyk) je srovnatelný s jinými populárními statistickými balíčky jako je SAS, SPSS a stata. V lednu 2009 New York Times otiskl článek, ve kterém R získává uznání mezi datovými analytiky, a že představuje potenciální hrozbu pro podíl na trhu obsazený komerčními statistickými balíčky jako je SAS.

Komerční podpora výzkumu[editovat | editovat zdroj]

V roce 2007 by založen Revolution Analytics,který poskytuje komerční podporu výzkumu, distribuci v oblasti výzkumu, která zahrnuje i komponenty vyvinuté společností. Mezi hlavní dodatečné komponenty patří: ParallelR, prostředí IDE, RevoScaleR (pro velké datové analýzy), RevoDeployR, rámec pro webové služby, a možnost pro čtení a zápis dat ve formátu SAS. V říjnu 2011 Oracle ustanovila společnost Big dat Appliance, která integruje R, Apache Hadoop, Oracle Linux a NoSQL databázi s Exadata hardware. Oracle Enterprise R je nyní jedním ze dvou komponentů "Oracle Advanced Analytics Option" (druhá složka je Oracle Data Mining). Jiné hlavní komerční softwarové systémy podporující připojení nebo integraci s R patří: JMP, Mathematica, MATLAB, Spotfire, SPSS, STATISTICA, Platforma Symphony, a SAS. TIBCO, současný vlastník S-Plus jazyka, umožňuje některým ze svých zaměstnanců, aby aktivně podporovaly výzkum s účasíi v R-Help mailing listu (viz výše), a aby sponzorovali setkání skupiny uživatelů. Google je velkým uživatelem R a vydává průvodce, sponzoruje projekty výzkumu ve svých Summer-of-Code úsilí, a také finančně podporuje uživatelské sérii schůzek. RStudio a nabízí software, vzdělání a služby pro R.

Viz také[editovat | editovat zdroj]

  • Seznam statistických balíčků
  • Porovnání statistických balíků
  • Seznam numerické analýzy software
  • Porovnání numerického softwaru pro analýzu
  • Zdarma statistického software
  • Rmetrics
  • Programování s Big dat v R (pbdR)

Zdroj[editovat | editovat zdroj]

Přeloženo z: https://en.wikipedia.org/wiki/R_(programming_language)

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

  1. SMITH, David. R's exponential package growth, ctd.. Revolutions [online]. 2010-01-07 [cit. 2012-12-02]. Dostupné online.