R (programovací jazyk)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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í R lze rozšířit pomocí knihoven označovaných jako balíčky (packages). Pro verzi 3. +more6. 2 jich bylo v lednu roku 2020 v centrálním repozitáři CRAN k dispozici 15 325. Příkladem často používaného balíčku je ggplot2 pro zobrazení dat.

R se používá z příkazového řádku, existuje však několik frontendů s grafickým rozhraním jako RKWard, RStudio a R Commander.

R bývá také propojováno či využíváno v komerčním softwaru, 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

R poskytuje širokou škálu statistických a grafických technik včetně lineárního a nelineárního modelování, klasických statistických testů, analýzy časových řad, shlukování a dalších. R je snadno rozšiřitelný pomocí funkcí a balíčků a R komunita je známá jejich aktivní aktualizací. +more Mnoho standardních funkcí R je psáno v samotném jazyku R, což usnadňuje uživatelům sledovat provedené algoritmické změny. Pro výpočetně náročné úlohy lze kód propojit s jazyky C, C++ a Fortran a zavolat je v době běhu. Pokročilí uživatelé mohou využívat jazyky C, C++, Java, . NET nebo Python k přímé manipulaci R objektů.

R je vysoce rozšiřitelný pomocí balíčků vytvořených samotnými uživateli obsahující konkrétní funkce, nebo využitelné v určitých oblastech studia. Díky svému dědictví z jazyka S má R silnější objektově orientované programování než většina ostatních statistických počítačových jazyků. +more Rozšíření R je také zjednodušeno díky využití lexikálních pravidel.

Další silnou stránkou R je statická grafika, která umí generovat grafy vhodné do vědeckých publikací zahrnující např. i matematické symboly. +more Dynamická a interaktivní grafika je dostupná prostřednictvím dalších balíčků.

R má svůj vlastní formát dokumentace podobný LaTeXu, který nahrazuje kompletní dokumentaci, a to jak on-line, tak v mnoha formátech a v tištěné podobě.

Programovací funkce

R je interpretovaný jazyk, k němuž uživatelé obvykle přistupují pomocí příkazového řádku (interpret). Pokud uživatel zadá 2 + 2 do příkazového řádku R a potvrdí stisknutím , odpovědí počítače bude 4, jak je uvedeno níže:

> 2 + 2 [1]: 4

Tento výpočet je interpretován jako součet dvou jednoelementových vektorů, jehož výsledkem je také jednoelementový vektor. Předpona [1] označuje, že seznam prvků, které následují na stejném řádku, začíná prvním prvkem vektoru (funkce, která je užitečná, když je výstup na více řádků).

Stejně jako jiné podobné jazyky, jako je APL a MATLAB, R podporuje matice. Datová struktura programovacího jazyka R zahrnuje vektory, matice, datové rámce (podobné tabulkám v relační databázi) a listy. +more Rozšiřitelný objekt - systém R zahrnuje objekty pro (mimo jiné): regresní modely, časové řady a geo-prostorové souřadnice. Skalární datový typ nebyl nikdy implementován jako datová struktura v R, skaláry jsou zde reprezentovány jako vektory s délkou jedna.

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. +more 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

Základní syntaxe

Následující příklady ilustrují základní syntaxi jazyka a použití příkazového řádku R.

V R je široce preferovaný operátor pro přiřazení tvořící šipku ze dvou znaků , ačkoli stejně dobře lze použít=.

Diagnostické grafy vytvořené funkcí plot.lm. Vlevo dole je vidět i možnost použití matematických symbolů v popiscích OS.

> x y print(y) # vypíše (vytiskne) y [1] 1 4 9 16 25 36 > mean(y) # Spočte aritmetický průměr prvků vektoru y; výsledkem je skalár [1] 15. 16667 > var(y) # Spočte rozptyl souboru [1] 178. +more9667 > lm_1 print(lm_1) # Vytiskne model (objekt lineárního modelu) lm_1.

Call: lm(formula = y ~ x)

Coefficients: (Intercept) x -9.333 7.000

> summary(lm_1) # Spočte a vypíše statistiku pro regresi # objektu lineárního modelu 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. +more3333 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)) # Nastaví rozložení grafu 2×2 > plot(lm_1) # Diagnostické vykreslení regresního modelu

Mandelbrotova množina

Mandelbrot. +moregif - na tento obrázek stačilo v tomto příkladu díky použití jazyka R pouze 14 řádek kódu. Tento příklad, vykreslující Mandelbrotovu množinu, demonstruje: * Využití externích knihoven (packages), v tomto případě caTools package * Manipulaci 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) # Externí balík obsahující funkci write.gif jet.colors

Funkce

Jednoduchost vytváření funkcí je jednou z nejsilnějších možností využití R. Návratová hodnota lokální funkce může mít jakýkoliv datový typ.

functionname

Teplotní mapa v R

Balíčky

Schopnosti R jsou rozšířeny pomocí tzv. balíčků vytvořených samotnými uživateli, které umožňují využití specializovaných statistických nástrojů, grafického zobrazení (např. +more ggplot2), nástrojů na import / export dat, práci s daty v duchu filozofie tidy data (balíčky tidyverse, tidymodels), pro tvorbu reportů (knitr, Sweave), atd. Tyto balíčky jsou vyvíjeny především v jazyku R, někdy však také v Javě, C nebo Fortranu.

Součástí instalace R je sada základních balíčků a dalších více než 11 000 dalších (k červenci 2017) je k dispozici na webových stránkách Comprehensive R Archive Network (CRAN), Bioconductor, Omegahat, GitHub a dalších úložištích. Pro verzi 2. +more10 jich bylo v červenci 2009 v centrálním repozitáři CRAN k dispozici ne méně než 2 000.

„Task Views“ - na internetových stránkách CRAN jsou vytvořeny manuály seskupující balíčky podle možného typu aplikace (např. finance, genetika, medicínské zobrazování, sociální vědy nebo prostorová analýza). +more Americký Úřad pro kontrolu potravin a léčiv (FDA) označila R jako vhodné také pro interpretaci dat z klinického výzkumu.

Další balíčky pro R můžeme najít také na stránkách Crantastic, komunitního webu pro kontrolu a hodnocení všech balíčků CRAN a R-Forge, centrální platformy pro spolupráci na vývoji balíčků R, softwarů souvisejících s R a dalších projektů. R-Forge obsahuje také mnoho nepublikovaných beta balíčků a vývojové verze balíčků CRAN.

Projekt Bioconductor poskytuje balíčky R pro analýzu genomických dat, jako Affymetrix a nástroje pro zpracování a analýzu cDNA microarray dat a začal poskytovat také nástroje pro analýzu dat z nové generace vysoce výkonných sekvenčních metod.

Další specializované a samostatně stojící balíčky lze nalézt volně na internetu nebo na univerzitních stránkách - pro výzkum fylogeneze a evoluce pomocí (nejen) genetických dat např. ape, pegas, Geneland, phytools, phyloseq, Phyloch nebo ParallelStructure. +more Reprodukovatelný výzkum a automatické generování reportů může být provedeno s balíčky, které podporují využití kódu R implementovaného do LaTeXu, OpenDocument formátu atd.

Milníky

Kompletní seznam změn je udržován v [url=http://cran. r-project. +moreorg/src/base/NEWS]NEWS[/url] souboru. Některé vlastnosti jsou uvedeny níže. * Verze 0. 16 - Poslední alfa verze vyvinutá společností „Ihaka and gentleman“. Většina základních funkcí pochází z tzv. „Bílé knihy“ (viz jazyk S). Mailing konference byla spuštěna 1. dubna 1997. * Verze 0. 49 (23. dubna 1997) - Jedná se o nejstarší verzi v CRAN repozitáři, která však byla přístupná pouze pro Unixové platformy. Alfa verze R pro Microsoft Windows a macOS byla spuštěna krátce po této verzi. CRAN repozitář byl k tomuto datu spuštěn se 3 zrcadly (mirrors), které zpočátku hostovaly 12 balíčků. * Verze 0. 60 (5. prosince 1997) - R se stalo oficiální součástí projektu GNU. Kód je hostován a udržován na CVS. * Verze 1. 0 (29. února 2000) - Podle vývojářů dostatečně stabilní pro produkční využití. * Verze 1. 4. 0 (19. prosince 2001) - Implementovány S4 metody; jde o první verze pro macOS. * Verze 2. 0 (4. října 2004) - Přidáno tzv. „lazy loading“, které umožňuje rychlé načtení dat s minimálním zatížením paměti systému. * Verze 2. 1. 0 (18. dubna 2005) - Podpora kódování UTF-8 a počátky internacionalizace a lokalizace pro různé jazyky. * Verze 2. 11. 0 (22. dubna 2010) - Podpora pro 64bitové MS Windows. * Verze 2. 13. 0 (14. dubna 2011) - Přidání nové funkce kompilátoru, která umožňuje zrychlení funkcí pomocí převedení do bajtkódu. * Verze 2. 14. 0 (31. října 2011) - Přidány povinné namespaces u balíčků. Přidán nový balíček parallel. * Verze 2. 15. 0 (30. března 2012) - Nová load balancing funkce a zvýšená rychlost serializace pro dlouhé vektory. * Verze 3. 0 - 3. dubna 2013 - Podpora pro číselné hodnoty indexu 231 a větších 64bitových systémech.

Rozhraní

Grafické uživatelské rozhraní (GUI)

RKWard - rozšiřitelné GUI a vývojové prostředí (IDE) pro R. * RStudio - multiplatformní open-source IDE (který může také být spuštěn na vzdáleném linuxovém serveru). +more * Deducer - GUI pro analýzu dat (podobně jako SPSS / JMP / Minitab). * Java GUI pro R - multiplatformní nezávislý terminál R a editor založený na Javě (také známý jako JGR). * Rattle GUI - multiplatformní open-source GUI založené na RGtk2 (R pro Gimp Tool Kit). * R Commander - multiplatformní GUI založeném na tcltk. * RExcel - propojení aplikace Microsoft Excel s jazykem R. Doplněk umožňující využívat R pro analýzu dat uložených v Excelu. * RGUI - přichází s předkompilovanou verzí R pro Microsoft Windows. * RWe - umožňuje využití schopnosti dolování dat ve Weka a statistických analýz v R. * Tinn-R - open-source program zahrnující i vývojové prostředí se zvýrazněním syntaxe, podobně jako např. u MATLAB. K dispozici je však pouze pro MS Windows. * R Tools for Visual Studio - plugin pro MS Visual Studio, který umožňuje využití jazyka R.

Skriptovací jazyky

Funkce R byly zpřístupněny v několika skriptovacích jazycích jako je Python (balíček RPY), Perl (modul Statistics::R), Ruby (knihovna RSRuby), a 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

Oficiální mezinárodní setkání uživatelů R nese název „useR!“.

První useR. konference byla uspořádána v květnu roku 2004 ve Vídni. +more Po jednoletém vynechání (v roce 2005) se další uživatelské konference konají již každoročně, zpravidla střídavě v rámci Evropy a Severní Ameriky.

Další konference:

* User. 2006, Vídeň, Rakousko * User. +more 2007, Ames, Iowa, USA * User. 2008, Dortmund, Německo * User. 2009, Rennes, Francie * 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 ostatními statistickými nástroji

Program R je srovnatelný s dalšími populárními statistickými nástroji jako je SAS, SPSS nebo Stata, avšak na rozdíl od nich je R k dispozici uživatelům bezplatně a využívá licenci svobodného software.

Komerční podpora programu R

Ačkoliv je R open-source projekt podporovaný komunitou pracující na jeho vývoji, některé komerční společnosti se snaží svým zákazníkům poskytnout technickou podporu nebo určitá rozšíření.

V roce 2007 byla založena firma Revolution Analytics, která poskytuje komerční podporu pro tzv. Revolution R (distribuci R zahrnující komponenty vyvinuté touto společností). +more Mezi hlavní přidané komponenty patří: ParallelR, R Productivity Environment IDE, RevoScaleR (pro analýzu velkých souborů dat), RevoDeployR, webový servis, a možnost čtení a zápisu dat ve formátu SAS. V roce 2015 společnost Microsoft odkoupila Revolution Analytics a následně implementovala jazyk R do programu Visual Studio 2017.

V roce 2011 společnost Oracle vytvořila systém Big dat Appliance, který integruje R, Apache Hadoop, Oracle Linux a NoSQL databázi s Exadata hardware. Oracle Enterprise R se stalo jedním ze dvou komponent „Oracle Advanced Analytics Option“ (druhou složkou je Oracle Data Mining).

K dalšímu komerčnímu software podporující napojení na nebo integraci do R patří: JMP, Mathematica, MATLAB, Pentaho, Spotfire, SPSS, STATISTICA, Platforma Symphony nebo SAS.

TIBCO, současný vlastník S-Plus jazyka, umožňuje svým zaměstnancům, aby aktivně podporovali výzkum s účastí v R-Help mailing listu (viz výše).

Google je velkým uživatelem R a vydává průvodce, sponzoruje výzkum v rámci projektu Summer-of-Code a také finančně podporuje uživatelská setkání.

RStudio nabízí software a služby pro R.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top