R (programovací jazyk)

R
Jazyková třída multi-paradigma
Typ provedení interpretován
Objevil se v 1993 [1]
Autor Ross Ihaka
Robert Gentleman
Uvolnění 4.2.1 (23. června 2022 ) ( 2022-06-23 )
Typový systém dynamický
Byl ovlivněn S , Schéma
Licence GNU GPL 2 [3]
webová stránka r-project.org
OS GNU/Linux [4] , BSD [4] , macOS [4] a Microsoft Windows [4]
 Mediální soubory na Wikimedia Commons

R  je programovací jazyk pro statistické zpracování dat a grafiku, stejně jako bezplatné a open source výpočetní prostředí v rámci projektu GNU . Jazyk byl vytvořen jako podobný jazyku S vyvinutému v Bell Labs a je jeho alternativní implementací, i když mezi jazyky existují značné rozdíly, ale z větší části kód v jazyce S funguje v prostředí R. Zpočátku R byl vyvinut Rossem Aihakou ( angl.  Ross Ihaka ) a Robertem Gentlemanem ( angl.  Robert Gentleman ) (první písmeno jejich jmen je R); jazyk a prostředí udržuje a rozvíjí nadace R [5] .

Široce se používá jako statistický software pro analýzu dat a stal se de facto standardem pro statistické programy [6] .

Jazyk a prostředí jsou dostupné pod GNU GPL ; distribuované ve formě zdrojových kódů, ale i kompilovaných aplikací pro řadu operačních systémů: FreeBSD , Solaris [7] a další distribuce Unixu a Linuxu , Windows , macOS .

R používá rozhraní příkazového řádku , i když je k dispozici několik grafických uživatelských rozhraní , jako je balíček R Commander , RKWard , RStudio , Weka , Rapid Miner , KNIME a integrace do kancelářských balíků.

V roce 2010 se R zapsal do seznamu vítězů soutěže časopisu Infoworld v nominaci na nejlepší open source software pro vývoj aplikací [8] .

Funkce

R je interpretovaný programovací jazyk, hlavní způsob práce s ním je interpret příkazů. Jazyk rozlišuje velká a malá písmena, z hlediska syntaxe je na jedné straně podobný funkcionálním jazykům , jako je Scheme , na druhé straně typickým moderním skriptovacím jazykům , s jednoduchou syntaxí a malou sadou zákl. struktur. Objektový jazyk: jakýkoli programový objekt v něm má sadu atributů - pojmenovaný seznam hodnot, které jej definují.

Jazyk podporuje minimální sadu primitivních datových typů: znakové (znakové), numerické (numerické), logické (logické) a komplexní (komplexní). Číselné proměnné mohou kromě běžných čísel nabývat speciálních hodnot NaN (Not a Number – „není číslo“) a Inf (Infinity – „nekonečno“). Nekonečno (kladné nebo záporné) se získá, když výsledek výpočtu překročí hranice rozsahu reprezentovaného implementací, NaN - během operací s nedefinovaným výsledkem. Kromě nich existuje další velmi důležitá speciální hodnota, NA (Not Available). Lze jej použít k nápravě skutečnosti, že z nějakého důvodu nebyla získána odpovídající hodnota obsažená ve výpočtech (ve statistických výpočtech poměrně častá situace, kdy kvůli chybám při sběru dat zůstávají některá pozorování bez výsledků).

Hodnoty primitivních typů lze kombinovat do vektorů (vektor), seznamů (seznam), matic nebo polí (matic), včetně vícerozměrných; tyto kombinované typy ukládají datové sady stejného primitivního typu. Jazyk navíc obsahuje pojem faktory (faktor) – soubory kategorických nebo škálových dat, které nabývají přesně definovaného souboru hodnot. Nakonec lze vytvořit tabulky (datové rámce) - datové struktury, které ukládají sadu různých (a majících různé typy) parametrů (vlastností) pro každý řádek (jednotlivce). Rysem R je, že operace s vektory a maticemi jsou podporovány na úrovni samotného jazyka, jako například v APL .

K dispozici je operace pro extrakci a zápis dat (obdoba zadání) " <-", stejně jako obvyklé operace pro práci s daty, včetně aritmetických. Přístup podle indexu k prvkům vektorů a polí se provádí pomocí hranatých závorek, přístup k atributům seznamů - přes operátor " $". Existuje minimální sada běžných imperativních programovacích konstrukcí: podmíněný operátor if, cykly whilea for. Výrazy v R lze popsat jako samostatné objekty a podle potřeby vyhodnotit. Popis funkcí je založen na stejném mechanismu. Existují vestavěná zařízení pro aplikaci výrazů a funkcí na vektory a pole.

Funkce R lze sbalit do balíčků - zaváděcích modulů, které se připojují k libovolnému programu a poskytují výpočetní zařízení v nich kombinovaná. Balíčky pro R lze vyvíjet v jiných programovacích jazycích včetně C, což umožňuje na jedné straně kompenzovat omezené vizuální zdroje samotného jazyka R a na druhé straně v případě potřeby dosáhnout vysokého výpočetního výkonu.

Samotný jazyk má dosti omezené a nepříliš pohodlné prostředky pro popis dat, ale to je kompenzováno přítomností knihovních nástrojů, které vám umožňují načítat datové sady prezentované ve většině otevřených a mnoha proprietárních formátech jako R tabulky. Do R lze tedy snadno načíst tabulky ve formátu prostého textu, tabulky Excel různých verzí, data ve formátech CSV , XML a mnoho dalších .

Obecně je R jako programovací jazyk docela jednoduchý a dokonce primitivní. Jeho největší předností je schopnost neomezeně expandovat pomocí balíčků. Základní distribuce R obsahuje základní sadu balíčků a celkem je k roku 2019 k dispozici více než 15 316 balíčků [9] . Téměř všechny relevantní nástroje univerzálního statistického počítání jsou implementovány v R, jako je regresní analýza a analýza časových řad , stejně jako mnoho specifických algoritmů pro řešení vysoce specializovaných problémů a výzkum v určitých oblastech.

Další vlastností jazyka je schopnost vytvářet vysoce kvalitní grafiku na typografické úrovni, kterou lze exportovat do běžných grafických formátů a použít pro prezentace nebo publikace. K dispozici jsou balíčky, které propojují R s GUI frameworky (např. založené na Tcl/Tk ) a umožňují vytvářet specializované nástroje pro statistické analýzy s grafickým uživatelským rozhraním a zobrazováním výsledků ve formě grafů a tabulek.

Příklady

Základní syntaxe

> x <- c ( 1 , 2 , 3 , 4 , 5 , 6 ) # Vytvořte seřazenou kolekci > y <- x ^ 2 # Čtvercové prvky z x > tisk ( y ) # Tisk y [ 1 ] 1 4 9 16 25 36 > průměr ( y ) # Vypočítejte aritmetický průměr y; výsledkem je číslo [ 1 ] 15,16667 > var ( y ) # Vypočítat rozptyl [ 1 ] 178,9667

Průměrná známka absolventa

# Do proměnné a vložte seznam všech hodnocení: a <- c ( 4 , 3 , 3 , 3 , 3 , 4 , 4 , 4 , 4 , 4 , 5 , 4 , 4 , 4 , 5 , 5 , 5 , 5 , + 3 , 5 , 5 , 4 , 4 , 3 , 3 , 4 , 4 , 3 , 5 , 5 , 4 , 3 , 3 , 4 , 4 , 3 , 3 , 5 , 4 , 5 , 5 ) # Do proměnné n vložte počet hodnocení: délka ( a ) -> n # Průměrné skóre: m <- průměr ( a ) # Tabulka (horizontální) počítající počet hodnocení: t <- tabulka ( a ) # Převést na pohodlnější formát dat (vertikální tabulka): f <- as.data.frame ( t ) # Vypočítejte procento a zapište je do třetího sloupce: mapply ( funkce ( r ) r * 100 / n , f [, 2 ]) -> f [, 3 ] # Záhlaví sloupců: colnames ( f ) <- c ( "Skóre" , "Množství" , "%" ) # Výsledky výstupu: a n m f

Výsledek:

[1] 4 3 3 3 3 4 4 4 4 4 5 4 4 4 5 5 5 5 3 5 5 4 4 3 3 4 4 3 5 5 4 3 3 4 4 3 3 5 | výstup a (38 čísel ze 41 se vejde do řetězce) [39] 4 5 5 | (zbývají tři čísla) [1] 41 | výstup n [1] 4 | výstup m Odhad č. % | 1. sloupec - číslo řádku v tabulce 1 3 12 29,26829 | 2. sloupec - typ hodnocení ("3"/"4"/"5") 2 4 17 41,46341111 | 3. sloupec - počet hodnocení 3 5 12 29,26829 | 4. sloupec - procento známek

Nástroje

Pro usnadnění práce s R byla vyvinuta řada grafických rozhraní, včetně RStudio , JGR , RKWard , SciViews-R , Statistical Lab , R Commander , Rattle a softwarového balíku Shiny .

Řada textových a kódových editorů navíc poskytuje speciální režimy pro práci s R, zejména ConTEXT , Emacs ( Emacs Speaks Statistics ), jEdit , Kate , Notepad++ , Syn , TextMate , Tinn-R , Vim , Bluefish , WinEdt (s balíček RWinEdt), Gedit (s balíčkem rgedit/gedit-r-plugin). Pro vývojové prostředí Eclipse existuje specializovaný plugin R ; K funkcím R a runtime lze přistupovat z Pythonu pomocí balíčku RPy; Můžete pracovat s R z ekonometrického balíčku Gretl .

Komercializace

Revolution Analytics , založená v roce 2007 a získaná společností Microsoft v roce 2015, založila celé své podnikání na komercializaci programovacího jazyka R, ve svém komerčním balíčku Revolution R takové komponenty (nedistribuované s bezplatnou verzí jazyka) jako ParallelR (podpora pro runtime multithreading ) jsou pozoruhodné ), R Productivity Environment ( integrované vývojové prostředí ), RevoScaleR (podpora pro masivně paralelní zpracování v rámci konceptu " big data "), RevoDeployR , knihovny pro integraci s webovými službami, podpora SAS Institute statistické formáty balíků [10] .

V říjnu 2011 vydala společnost Oracle Corporation Big Data Appliance  , cluster masivně paralelních serverů pro zpracování NoSQL s integrovanými softwarovými nástroji založenými na jazyce R a Apache Hadoop [11] a v únoru 2012 byl jazyk zabudován do databáze Oracle [ 12] . V roce 2011 byla implementována hromadná paralelní analýza pomocí R v hardwarově-softwarových komplexech Netezza společnosti IBM Corporation [13] [14] ; později byl jazyk podporován v hardwarovém a softwarovém balíčku SAP Hana .

Jazyk R podporují i ​​komerční softwarová prostředí Tibco Spotfire , SPSS (od verze 16.0) [15] , Statistica (od verze 9.0), Platform Symphony , Power BI , SAS , Tableau .

Cran

R a další balíčky jsou distribuovány prostřednictvím CRAN (zkratka pro Comprehensive R Archive Network ). Ke konci roku 2010 je na světě k dispozici více než 60 zrcadel CRAN , hlavní uzel se nachází ve Vídni ( Rakousko ) [16] .

Newsletter R

The R Journal [17] , volně distribuovaný informační časopis vydávaný dvakrát až třikrát ročně, obsahuje články o statistickém zpracování dat a inženýrství, které jsou zaměřeny jak na uživatele jazyků, tak na vývojáře R. Od ledna 2001 do října 2008 vycházel jako zpravodaj R News [18] .

Konference

Jednou z nejoblíbenějších jazykových konferencí je useR! ( The R User Conference ), která se koná každoročně od roku 2004 , sdružuje odborníky z různých oblastí.

Od roku 2009 se každé jaro v Chicagu koná konference věnovaná aplikaci R ve financích ( R/Finance: Applied Finance with R ). V roce 2013 se konala první konference věnovaná použití R v pojištění ( R in Insurance ).

Poznámky

  1. Stručná historie archivovaná 14. února 2012 na Wayback Machine R: Minulá a budoucí historie, Ross Ihaka, oddělení statistiky, The University of Auckland, Auckland, Nový Zéland, dostupné z webu CRAN
  2. 1 2 R: Jazyk pro analýzu dat a grafiku
  3. https://www.r-project.org/about.html
  4. 1 2 3 4 Adresář svobodného softwaru
  5. R: The R Foundation . Získáno 28. října 2016. Archivováno z originálu 25. května 2016.
  6. Teaching-with-R.pdf Archivováno 11. června 2016 na Wayback Machine 
  7. R-Project na Solaris  (downlink)  (downlink od 13-05-2013 [3461 dní])
  8. InfoWorld Bossie Awards 2010 Archivováno 11. září 2014.
  9. Balíčky s přispěním CRAN . cran.r-project.org. Získáno 8. prosince 2019. Archivováno z originálu 13. března 2016.
  10. 'Red Hat pro statistiky' jde od špičky k patě se SAS . Získáno 29. září 2017. Archivováno z originálu 7. července 2017.
  11. Oracle zavádí vlastní NoSQL a Hadoop . Získáno 29. září 2017. Archivováno z originálu 7. července 2017.
  12. Prickett Morgan, Timothy Oracle vložil jazyk R statistik do databáze  (anglicky)  (odkaz není k dispozici) . The Register (10. února 2012). Získáno 10. února 2012. Archivováno z originálu 3. června 2012.
  13. Harris, Derrick . IBM vytváří Big Data Frankenstein s Netezza-R Fusion  (anglicky) , The New York Times  (2011-03-141). Staženo 19. listopadu 2011.
  14. Rosenberg, Dave Open-source 'R' získává integraci Hadoop  (anglicky)  (odkaz není k dispozici) . cnet . CBS . Získáno 19. listopadu 2011. Archivováno z originálu 17. února 2012.
  15. ↑ Na RSS záleží . Získáno 19. listopadu 2011. Archivováno z originálu 2. dubna 2012.
  16. Hlavový uzel CRAN . Získáno 7. dubna 2007. Archivováno z originálu 5. ledna 2008.
  17. R Journal . Datum přístupu: 30. prosince 2010. Archivováno z originálu 17. února 2010.
  18. Zprávy CRAN:R . Získáno 7. dubna 2007. Archivováno z originálu 28. května 2007.

Literatura

  • Robert Kabakov. R v akci = R v akci. - DMK-Press , 2014. - 588 s. — ISBN 978-5-947060-077-1 .
  • Hadley Wickham, Garrett Growlmund. R pro Data Science: Vizualizace, modelování, transformace, pořádek a import dat. - Williams , 2017. - 592 s. - ISBN 978-5-9909446-8-8 , 978-1-491-91039-9.
  • Norman Matloff Umění programování R. Ponořte se do velkých dat. = The Art of R Programming: Tour of Statistic Software Design. . -Petr, 2019. - 416 s. -ISBN 978-5-4461-1101-5.

Odkazy