R (programozási nyelv)

R
Nyelvóra több paradigma
A végrehajtás típusa értelmezni
Megjelent 1993 [1]
Szerző Ross Ihaka
Robert Gentleman
Kiadás 4.2.1 (2022. június 23. ) ( 2022-06-23 )
Típusrendszer dinamikus
Befolyásolva S , séma
Engedély GNU GPL 2 [3]
Weboldal r-project.org
OS GNU/Linux [4] , BSD [4] , macOS [4] és Microsoft Windows [4]
 Médiafájlok a Wikimedia Commons oldalon

Az R  egy programozási nyelv statisztikai adatfeldolgozáshoz és grafikákhoz, valamint egy ingyenes és nyílt forráskódú számítási környezet a GNU Project keretében . A nyelvet a Bell Labs -ban kifejlesztett S nyelvhez hasonlóként hozták létre , és ennek alternatív megvalósítása, bár vannak jelentős különbségek a nyelvek között, de az S nyelv kódja többnyire R környezetben működik. Ross Aihaka ( eng. Ross Ihaka ) és Robert Gentleman ( eng. Robert Gentleman ) fejlesztette ki (nevük első betűje R); a nyelvet és a környezetet az R Alapítvány tartja karban és fejleszti [5] .   

Széles körben használják statisztikai szoftverként adatelemzéshez, és a statisztikai programok de facto szabványává vált [6] .

A nyelv és a környezet a GNU GPL alatt érhető el ; forráskódok formájában terjesztve, valamint számos operációs rendszerre fordított alkalmazásokat: FreeBSD , Solaris [7] és Unix és Linux egyéb disztribúciói , Windows , macOS .

Az R parancssori felületet használ , bár számos grafikus felhasználói felület áll rendelkezésre , például az R Commander csomag , az RKWard , az RStudio , a Weka , a Rapid Miner , a KNIME és az irodai csomagokba való integráció.

2010-ben R bekerült az Infoworld magazinverseny győzteseinek listájára a legjobb nyílt forráskódú alkalmazásfejlesztő szoftver jelölésében [8] .

Jellemzők

Az R egy értelmezett programozási nyelv, a vele való munka fő módja a parancsértelmező. A nyelv megkülönbözteti a kis- és nagybetűket, szintaxisát tekintve egyrészt hasonló a funkcionális nyelvekhez , mint a Scheme , másrészt a tipikus modern szkriptnyelvekhez , egyszerű szintaxissal és egy kis alapszintű készlettel. szerkezetek. Objektumnyelv: minden benne lévő programobjektumnak van egy attribútumkészlete - egy elnevezett értéklista, amely meghatározza.

A nyelv támogatja a primitív adattípusok minimális készletét: karakter (karakter), numerikus (numerikus), logikai (logikai) és összetett (komplex). A numerikus változók a közönséges számokon kívül felvehetik a NaN (Not a Number - "nem szám") és az Inf (Infinity - "végtelen") speciális értéket. Végtelent (pozitív vagy negatív) akkor kapunk, ha a számítási eredmény túllép a megvalósítás által képviselt tartomány határain, NaN - meghatározatlan eredménnyel végzett műveletek során. Ezeken kívül van még egy nagyon fontos különleges érték, az NA (Not Available). Rögzíthető vele, hogy a számításokban szereplő megfelelő értéket valamilyen okból nem kaptuk meg (a statisztikai számításoknál meglehetősen gyakori helyzet, amikor az adatgyűjtés hibái miatt egyes megfigyelések eredmény nélkül maradnak).

A primitív típusok értékei kombinálhatók vektorokká (vektorok), listákba (lista), mátrixokká vagy tömbökké (mátrixok), beleértve a többdimenziósakat is; ezek a kombinált típusok azonos primitív típusú adatkészleteket tárolnak. Ezenkívül a nyelv tartalmazza a tényezők (faktor) fogalmát - kategorikus vagy skálaadatok halmazait, amelyek szigorúan meghatározott értékkészletet vesznek fel. Végül táblázatok (adatkeretek) hozhatók létre - olyan adatstruktúrák, amelyek minden sorhoz (egyedihez) különböző (és különböző típusú) paraméterek (jellemzők) halmazát tárolják. Az R jellemzője, hogy a vektorokkal és mátrixokkal végzett műveletek a nyelv szintjén támogatottak, mint például az APL -ben .

Van egy művelet az adatok kinyerésére és írására (a hozzárendeléshez hasonlóan) " <-", valamint az adatokkal való munkavégzés szokásos műveletei, beleértve az aritmetikai műveleteket is. A vektorok és tömbök elemeihez való indexelés szögletes zárójelekkel, a listák attribútumaihoz való hozzáférés - a " " operátoron keresztül történik $. A gyakori kötelező programozási konstrukcióknak van egy minimális halmaza: feltételes operátor if, ciklusok whileés for. Az R-ben lévő kifejezések külön objektumokként írhatók le, és szükség szerint kiértékelhetők. A funkciók leírása ugyanezen a mechanizmuson alapul. Vannak beépített lehetőségek a kifejezések és függvények vektorokra és tömbökre történő alkalmazására.

Az R függvények csomagokba köthetők – betölthető modulokba, amelyek bármely programhoz csatlakoznak, és biztosítják a bennük kombinált számítási lehetőségeket. Az R-hez készült csomagok más programozási nyelveken is fejleszthetők, beleértve a C-t is, ami lehetővé teszi egyrészt magának az R nyelvnek a korlátozott vizuális erőforrásainak kompenzálását, másrészt szükség esetén nagy számítási teljesítmény elérését.

Maga a nyelv meglehetősen korlátozott és nem túl kényelmes eszközökkel rendelkezik az adatok leírására, de ezt kompenzálja a könyvtári eszközök jelenléte, amelyek lehetővé teszik a legtöbb nyílt és számos szabadalmaztatott formátumban bemutatott adatkészletek betöltését R-táblázatként. Így egyszerű szöveges formátumú táblázatok, különféle verziójú Excel -táblázatok, CSV- , XML -formátumú adatok és sok más könnyen betölthető az R-be.

Általánosságban elmondható, hogy programozási nyelvként az R meglehetősen egyszerű, sőt primitív. Legnagyobb erőssége, hogy csomagokkal korlátlanul bővíthető. Az R alapdisztribúciója magába foglalja a csomagok alapkészletét, és összesen 2019-ig több mint 15 316 csomag érhető el [9] . Az univerzális statisztikai számítástechnika szinte minden releváns eszköze az R-ben van megvalósítva, mint például a regressziós elemzés és az idősor-elemzés , valamint számos speciális algoritmus speciális problémák megoldására és bizonyos területeken végzett kutatásokra.

A nyelv másik jellemzője, hogy kiváló minőségű tipográfiai szintű grafikákat készíthet, amelyek exportálhatók általános grafikai formátumokba, és felhasználhatók prezentációkhoz vagy kiadványokhoz. Rendelkezésre állnak olyan csomagok, amelyek összekapcsolják az R-t GUI keretrendszerekkel (pl. Tcl/Tk alapján ), és lehetővé teszik speciális statisztikai elemző segédprogramok létrehozását grafikus felhasználói felülettel, és az eredményeket grafikonok és diagramok formájában jelenítik meg.

Példák

Alapszintaxis

> x < -c ( 1 , 2 , 3 , 4 , 5 , 6 ) # Rendezett gyűjtemény létrehozása > y < - x ^ 2 # Négyzet alakú elemek x - ből > print ( y ) # Nyomtatás y [ 1 ] 1 4 9 16 25 36 > mean ( y ) # Számítsa ki y számtani középértékét; az eredmény szám [ 1 ] 15.16667 > var ( y ) # Variancia számítása [ 1 ] 178.9667

Graduate Grade Average

# Tegye fel az összes értékelés listáját az a változóba: 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 ) # Írja be az értékelések számát az n változóba: hossz ( a ) -> n # Átlagos pontszám: m <- átlag ( a ) # Az értékelések számát számláló táblázat (vízszintes): t <- táblázat ( a ) # Konvertálás kényelmesebb adatformátumra (függőleges táblázat): f <- as.data.frame ( t ) # Számítsa ki a százalékot, és írja be a harmadik oszlopba: mapply ( függvény ( r ) r * 100 / n , f [, 2 ]) -> f [, 3 ] # Oszlopcímek : oszlopnevek ( f ) <- c ( "Score" , "Quantity" , "%" ) # Kimeneti eredmények: a n m f

Eredmény:

[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 | kimenet a (41-ből 38 szám illeszkedik a karakterláncba) [39] 4 5 5 | (maradék három szám) [1] 41 | kimenet n [1] 4 | kimenet m Becslési szám % | 1. oszlop - sorszám a táblázatban 1 3 12 29,26829 | 2. oszlop – értékelés típusa ("3"/"4"/"5") 2 4 17 41.46341111 | 3. oszlop – értékelések száma 3 5 12 29,26829 | 4. oszlop - az osztályzatok százalékos aránya

Eszközök

Számos grafikus felületet fejlesztettek ki az R-vel való munka kényelmesebbé tételére, köztük az RStudio , JGR , RKWard , SciViews-R , Statistical Lab , R Commander , Rattle és a Shiny szoftvercsomag .

Ezen kívül számos szöveg- és kódszerkesztő speciális módokat biztosít az R-vel való munkavégzéshez, különösen a ConTEXT , Emacs ( Emacs Speaks Statistics ), jEdit , Kate , Notepad++ , Syn , TextMate , Tinn-R , Vim , Bluefish , WinEdt (valamint RWinEdt csomag), Gedit (rgedit/gedit-r-plugin csomaggal). Létezik egy speciális R beépülő modul az Eclipse fejlesztői környezethez; Az R függvények és a futási környezet a Pythonból az RPy csomag használatával érhetők el ; Az R-vel a Gretl ökonometriai csomagból dolgozhat .

Kommercializáció

A 2007- ben alapított és a Microsoft által 2015-ben felvásárolt Revolution Analytics teljes üzleti tevékenységét az R programozási nyelv kereskedelmi forgalomba hozatalára alapozta a kereskedelmi Revolution R csomagjában , olyan (a nyelv ingyenes verziójával nem terjesztett) komponensekkel, mint a ParallelR (támogatás ). futásidejű többszálú kezeléshez) figyelemreméltóak ), R Productivity Environment ( integrált fejlesztői környezet ), RevoScaleR (masszívan párhuzamos feldolgozás támogatása a " big data " koncepció keretein belül ), RevoDeployR , könyvtárak a webszolgáltatásokkal való integrációhoz, SAS Institute támogatása statisztikai csomagformátumok [10] .

2011 októberében az Oracle Corporation kiadta a Big Data Appliance  nevű NoSQL -fürtöt, amely az R nyelven és az Apache Hadoop -on alapuló integrált szoftvereszközökkel rendelkező, masszívan párhuzamos feldolgozó szerverekből áll [11] , majd 2012 februárjában a nyelvet beépítették az Oracle Database -ba [ 11]. 12] . 2011 -ben az IBM Corporation Netezza hardver-szoftver komplexumaiban R segítségével tömegpárhuzamos elemzést valósítottak meg [13] [14] ; Később a nyelvet az SAP Hana hardver- és szoftvercsomag támogatta .

Az R nyelvet a Tibco Spotfire , SPSS (16.0-s verziótól kezdődően) [15] , Statistica (9.0-s verziótól), Platform Symphony , Power BI , SAS , Tableau kereskedelmi szoftverkörnyezetek is támogatják .

Cran

Az R és a további csomagok a CRAN -on (a Comprehensive R Archive Network rövidítése) keresztül kerülnek terjesztésre . A 2010-es évek végén több mint 60 CRAN tükör kapható a világon, a fejcsomópont Bécsben ( Ausztria ) található [16] .

Hírlevél R

Az R Journal [17] , az évente két-három alkalommal megjelenő, szabadon terjesztett tájékoztató folyóirat statisztikai adatfeldolgozással és tervezéssel foglalkozó cikkeket tartalmaz, amelyek a nyelvhasználóknak és az R fejlesztőknek egyaránt szólnak. hírlevél R Hírek [18] .

Konferenciák

Az egyik legnépszerűbb nyelvi konferencia a userR! ( The R User Conference ), amelyet 2004 óta évente rendeznek meg, különböző területek szakértőit ​​gyűjti össze.

2009 óta minden tavasszal Chicagóban konferenciát rendeznek az R pénzügyekben való alkalmazásáról ( R/Finance: Applied Finance with R ). 2013 - ban rendezték meg az első konferenciát, amely az R biztosításban való felhasználásával foglalkozott ( R in Insurance ).

Jegyzetek

  1. A Brief History archiválva : 2012. február 14. a Wayback Machine R: Past and Future History, Ross Ihaka, Aucklandi Egyetem Statisztikai Tanszéke, Auckland, Új-Zéland, elérhető a CRAN webhelyéről
  2. 1 2 R: Nyelv az adatelemzéshez és a grafikához
  3. https://www.r-project.org/about.html
  4. 1 2 3 4 Ingyenes szoftverek könyvtára
  5. R: Az R Alapítvány . Letöltve: 2016. október 28. Az eredetiből archiválva : 2016. május 25.
  6. Teaching-with-R.pdf Archivált : 2016. június 11. a Wayback Machine -nél 
  7. R-Project a Solaris-on  (lefelé irányuló kapcsolat)  (2013-05-13 óta [3461 nap])
  8. InfoWorld Bossie Awards 2010 archiválva : 2014. szeptember 11.
  9. CRAN – közreműködött csomagok . cran.r-project.org. Letöltve: 2019. december 8. Az eredetiből archiválva : 2016. március 13.
  10. A 'Red Hat a statisztikákért' a SAS-szal együtt halad . Letöltve: 2017. szeptember 29. Az eredetiből archiválva : 2017. július 7.
  11. Az Oracle saját NoSQL-t és Hadoop-ot dob ​​fel . Letöltve: 2017. szeptember 29. Az eredetiből archiválva : 2017. július 7.
  12. Prickett Morgan, Timothy Oracle az R stats nyelvet az adatbázisba helyezi  (magyar)  (hivatkozás nem érhető el) . A nyilvántartás (2012. február 10.). Letöltve: 2012. február 10. Az eredetiből archiválva : 2012. június 3..
  13. Harris, Derrick . Az IBM Big Data Frankensteint hoz létre a Netezza-R Fusion segítségével  (angol) , The New York Times  (2011-03-141). Letöltve: 2011. november 19.
  14. Rosenberg, Dave A nyílt forráskódú 'R' megkapja a Hadoop integrációt  (angolul)  (a hivatkozás nem érhető el) . cnet . CBS . Letöltve: 2011. november 19. Az eredetiből archiválva : 2012. február 17..
  15. RSS számít . Letöltve: 2011. november 19. Az eredetiből archiválva : 2012. április 2..
  16. CRAN fejcsomópont . Letöltve: 2007. április 7. Az eredetiből archiválva : 2008. január 5..
  17. R Journal . Hozzáférés dátuma: 2010. december 30. Az eredetiből archiválva : 2010. február 17.
  18. CRAN:R Hírek . Letöltve: 2007. április 7. Az eredetiből archiválva : 2007. május 28..

Irodalom

  • Robert Kabakov. R akcióban = R akcióban. - DMK-Press , 2014. - 588 p. — ISBN 978-5-947060-077-1 .
  • Hadley Wickham, Garrett Growlmund. R for Data Science: Adatok megjelenítése, modellezése, átalakítása, rendezése és importálása. - Williams , 2017. - 592 p. - ISBN 978-5-9909446-8-8 , 978-1-491-91039-9.
  • Norman Matloff Az R programozás művészete. Merüljön el a Big Data világában. = Az R programozás művészete: A statisztikai szoftvertervezés körútja. . -Péter, 2019. - 416 p. -ISBN 978-5-4461-1101-5.

Linkek