R (ohjelmointikieli)

R
Kieliluokka moniparadigma
Toteutustyyppi tulkittu
Esiintyi 1993 [1]
Tekijä Ross Ihaka
Robert Gentleman
Vapauta 4.2.1 (23. kesäkuuta 2022 ) ( 23.6.2022 )
Tyyppijärjestelmä dynaaminen
Vaikutettu S , Kaavio
Lisenssi GNU GPL 2 [3]
Verkkosivusto r-project.org
OS GNU/Linux [4] , BSD [4] , macOS [4] ja Microsoft Windows [4]
 Mediatiedostot Wikimedia Commonsissa

R  on ohjelmointikieli tilastolliseen tietojenkäsittelyyn ja grafiikkaan sekä ilmainen ja avoimen lähdekoodin laskentaympäristö GNU Projectin alaisuudessa . Kieli luotiin samankaltaiseksi kuin Bell Labsissa kehitetty S -kieli , ja se on sen vaihtoehtoinen toteutus, vaikka kielten välillä on merkittäviä eroja, mutta suurimmaksi osaksi S-kielen koodi toimii R-ympäristössä. kehittivät Ross Aihaka ( eng. Ross Ihaka ) ja Robert Gentleman ( eng. Robert Gentleman ) (heidän nimensä ensimmäinen kirjain on R); kieltä ja ympäristöä ylläpitää ja kehittää R Foundation [5] .   

Käytetään laajasti tilastoohjelmistona tietojen analysointiin ja siitä on tullut tilastoohjelmien tosiasiallinen standardi [6] .

Kieli ja ympäristö ovat saatavilla GNU GPL : n alla ; jaetaan lähdekoodien muodossa sekä käännetyt sovellukset useille käyttöjärjestelmille: FreeBSD , Solaris [7] ja muut Unix- ja Linux -jakelut , Windows , macOS .

R käyttää komentorivikäyttöliittymää , vaikka saatavilla on useita graafisia käyttöliittymiä , kuten R Commander -paketti , RKWard , RStudio , Weka , Rapid Miner , KNIME ja integraatiot toimistosovelluksiin.

Vuonna 2010 R pääsi Infoworld- lehtikilpailun voittajien listalle parhaan avoimen lähdekoodin sovelluskehitysohjelmiston ehdokkuudessa [8] .

Ominaisuudet

R on tulkittu ohjelmointikieli, pääasiallinen tapa työskennellä sen kanssa on komentotulkki. Kieli on isot ja pienet kirjaimet erotteleva, syntaksilta se muistuttaa toisaalta toiminnallisia kieliä , kuten Scheme , toisaalta tyypillisiä nykyaikaisia ​​komentosarjakieliä yksinkertaisella syntaksilla ja pienellä perusjoukolla rakenteet. Objektikieli: millä tahansa siinä olevalla ohjelmaobjektilla on joukko attribuutteja - nimetty luettelo arvoista, jotka määrittelevät sen.

Kieli tukee vähimmäisjoukkoa primitiivisiä tietotyyppejä: merkki (merkki), numeerinen (numeerinen), looginen (looginen) ja kompleksi (kompleksi). Numeeriset muuttujat voivat tavallisten lukujen lisäksi ottaa erikoisarvot NaN (Ei numero - "ei numero") ja Inf (Infinity - "ääretön"). Ääretön (positiivinen tai negatiivinen) saadaan, kun laskentatulos ylittää toteutuksen edustaman alueen rajat, NaN - määrittelemättömän tuloksen operaatioissa. Näiden lisäksi on toinen erittäin tärkeä erikoisarvo, NA (Ei saatavilla). Sillä voidaan korjata se tosiasia, että laskelmiin liittyvää vastaavaa arvoa ei jostain syystä saatu (tilastolaskennoissa melko yleinen tilanne, kun tiedonkeruun epäonnistumisen vuoksi osa havainnoista jää ilman tuloksia).

Alkuperäisten tyyppien arvot voidaan yhdistää vektoreiksi (vektoriksi), listoiksi (lista), matriiseiksi tai taulukoiksi (matriisi), mukaan lukien moniulotteiset; nämä yhdistetyt tyypit tallentavat saman primitiivityypin tietojoukkoja. Lisäksi kieli sisältää tekijöiden (tekijän) käsitteen - kategorisen tai mittakaavan datan joukot, jotka ottavat tiukasti määritellyt arvot. Lopuksi voidaan luoda taulukoita (tietokehyksiä) - tietorakenteita, jotka tallentavat joukon erilaisia ​​(ja joilla on erityyppisiä) parametreja (ominaisuuksia) jokaiselle riville (yksittäiselle). R:n ominaisuus on, että operaatioita vektoreilla ja matriiseilla tuetaan itse kielen tasolla, kuten esimerkiksi APL :ssä .

On olemassa toiminto tietojen poimimiseen ja kirjoittamiseen (analoginen tehtävän kanssa) " <-" sekä tavanomaiset toiminnot tietojen käsittelyyn, mukaan lukien aritmeettiset. Pääsy indeksin avulla vektorien ja taulukoiden elementteihin tapahtuu hakasulkeilla, pääsy luetteloiden attribuutteihin - operaattorin " $" kautta. On olemassa pieni joukko yleisiä pakottavia ohjelmointirakenteita: ehdollinen operaattori if, silmukat whileja for. R:n lausekkeet voidaan kuvata erillisinä objekteina ja arvioida tarpeen mukaan. Toimintojen kuvaus perustuu samaan mekanismiin. On sisäänrakennetut tilat lausekkeiden ja funktioiden soveltamiseen vektoreihin ja taulukoihin.

R-funktiot voidaan niputtaa paketeiksi - ladattaviin moduuleihin, jotka liittyvät mihin tahansa ohjelmaan ja tarjoavat niihin yhdistetyt laskentaominaisuudet. R-paketteja voidaan kehittää muilla ohjelmointikielillä, mukaan lukien C, mikä mahdollistaa toisaalta kompensoida itse R-kielen rajalliset visuaaliset resurssit ja toisaalta saavuttaa tarvittaessa korkea laskentateho.

Itse kielellä on melko rajalliset ja ei kovin kätevät keinot tietojen kuvaamiseen, mutta tämän kompensoi kirjastotyökalut, joiden avulla voit ladata tietojoukkoja, jotka on esitetty useimmissa avoimissa ja monissa patentoiduissa muodoissa R-taulukoina. Joten pelkkä tekstimuodossa olevat taulukot, eri versioiden Excel -taulukot, CSV -tiedostot , XML -muodot ja monet muut voidaan helposti ladata R:hen.

Yleisesti ottaen R on ohjelmointikielenä melko yksinkertainen ja jopa primitiivinen. Sen suurin vahvuus on kyky laajentaa loputtomasti pakettien avulla. R:n perusjakelu sisältää pakettien ydinjoukon, ja yhteensä vuodesta 2019 lähtien on saatavilla yli 15 316 pakettia [9] . Lähes kaikki merkitykselliset universaalin tilastollisen laskennan työkalut on toteutettu R:ssä, kuten regressioanalyysi ja aikasarjaanalyysi , sekä monia erityisiä algoritmeja erittäin erikoistuneiden ongelmien ratkaisemiseen ja tiettyjen alueiden tutkimukseen.

Toinen kielen ominaisuus on kyky luoda korkealaatuista typografista tason grafiikkaa, joka voidaan viedä yleisiin grafiikkamuotoihin ja käyttää esityksissä tai julkaisuissa. Saatavilla on paketteja, jotka yhdistävät R:n GUI-kehyksiin (esim. Tcl/Tk -pohjaisten ) ja mahdollistavat erikoistuneiden tilastollisen analyysin apuohjelmien luomisen graafisella käyttöliittymällä ja tulosten näyttämisellä kaavioiden ja kaavioiden muodossa.

Esimerkkejä

Perussyntaksi

> x <- c ( 1 , 2 , 3 , 4 , 5 , 6 ) # Luo järjestetty kokoelma > y < - x ^ 2 # Neliöelementtejä x : stä > tulosta ( y ) # Tulosta y [ 1 ] 1 4 9 16 25 36 > keskiarvo ( y ) # Laske y:n aritmeettinen keskiarvo; tulos on luku [ 1 ] 15.16667 > var ( y ) # Laske varianssi [ 1 ] 178.9667

Graduate Grade Average

# Laita luettelo kaikista arvioista muuttujaan a: 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 ) # Laita luokitusten lukumäärä muuttujaan n: pituus ( a ) -> n # Keskimääräinen pistemäärä: m <- keskiarvo ( a ) # Taulukko (vaaka), joka laskee arvioiden määrän: t <- taulukko ( a ) # Muunna kätevämpään tietomuotoon (pystytaulukko): f <- as.data.frame ( t ) # Laske prosenttiosuus ja kirjoita se kolmanteen sarakkeeseen: mapply ( funktio ( r ) r * 100 / n , f [, 2 ]) -> f [, 3 ] # Sarakkeiden otsikot: sarakkeiden nimet ( f ) <- c ( "Pistemäärä" , "Määrä" , "%" ) # Tulostustulokset: a n m f

Tulos:

[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 | tulosta a (38 numeroa 41:stä mahtuu merkkijonoon) [39] 4 5 5 | (jäljellä kolme numeroa) [1] 41 | lähtö n [1] 4 | lähtö m Arvio nro % | 1. sarake - taulukon rivin numero 1 3 12 29,26829 | 2. sarake – arviointityyppi ("3"/"4"/"5") 2 4 17 41.46341111 | 3. sarake - arvioiden määrä 3 5 12 29,26829 | 4. sarake - arvosanojen prosenttiosuus

Työkalut

R:n kanssa työskentelyn helpottamiseksi on kehitetty useita graafisia käyttöliittymiä, mukaan lukien RStudio , JGR , RKWard , SciViews-R , Statistical Lab , R Commander , Rattle ja Shiny - ohjelmistopaketti .

Lisäksi useat teksti- ja koodieditorit tarjoavat erikoistiloja R:n kanssa työskentelyyn, erityisesti ConTEXT , Emacs ( Emacs Speaks Statistics ), jEdit , Kate , Notepad++ , Syn , TextMate , Tinn-R , Vim , Bluefish , WinEdt (ja RWinEdt-paketti), Gedit ( paketin rgedit/gedit-r-plugin kanssa). Eclipse - kehitysympäristöön on erikoistunut R-laajennus ; R-funktioita ja suoritusaikaa voidaan käyttää Pythonista RPy-paketin avulla; Voit työskennellä R:n kanssa Gretl -ekonometrisesta paketista .

Kaupallistaminen

Vuonna 2007 perustettu ja Microsoftin vuonna 2015 ostama Revolution Analytics perusti koko liiketoimintansa ohjelmointikielen R kaupallistamiseen kaupallisessa Revolution R -paketissaan , kuten ParallelR (tuki ). ajonaikaisessa monisäikeistuksessa ) ovat huomionarvoisia ), R Productivity Environment ( integroitu kehitysympäristö ), RevoScaleR (tuki massiiviselle rinnakkaiskäsittelylle " big data " -käsitteen puitteissa), RevoDeployR , verkkopalveluihin integroitavat kirjastot, tuki SAS Institutelle tilastolliset pakettimuodot [10] .

Oracle Corporation julkaisi lokakuussa 2011 Big Data Appliancen  , NoSQL -klusterin, joka koostuu massiivisesti rinnakkaisista prosessointipalvelimista integroiduilla ohjelmistotyökaluilla, jotka perustuvat R-kieleen ja Apache Hadoopiin [ 11] , ja helmikuussa 2012 kieli rakennettiin Oracle-tietokantaan . 12] . Vuonna 2011 massa-rinnakkaisanalyysi toteutettiin IBM Corporationin Netezza -laitteisto-ohjelmistokompleksissa [13] [14] ; myöhemmin kieltä tuettiin SAP Hana -laitteisto- ja ohjelmistopaketissa .

R-kieltä tukevat myös kaupalliset ohjelmistoympäristöt Tibco Spotfire , SPSS (versiosta 16.0 alkaen) [15] , Statistica (versiosta 9.0 alkaen), Platform Symphony , Power BI , SAS , Tableau .

Cran

R- ja lisäpaketit jaetaan CRAN :in kautta (lyhenne sanoista Comprehensive R Archive Network ). 2010-luvun lopulla maailmassa on saatavilla yli 60 CRAN - peiliä , pääsolmu sijaitsee Wienissä ( Itävalta ) [16] .

Uutiskirje R

R Journal [17] , kahdesta kolmeen kertaa vuodessa ilmestyvä vapaasti levitettävä tietolehti, joka sisältää tilastotietojen käsittelyä ja suunnittelua koskevia artikkeleita sekä kielten käyttäjille että R-kehittäjille. uutiskirje R News [18] .

Konferenssit

Yksi suosituimmista kielikonferensseista on userR! Vuodesta 2004 lähtien vuosittain järjestettävä R User Conference kokoaa yhteen eri alojen asiantuntijoita.

Vuodesta 2009 lähtien joka kevät Chicagossa on pidetty konferenssi, joka on omistettu R:n soveltamiselle rahoituksessa ( R/Finance: Applied Finance with R ). Vuonna 2013 pidettiin ensimmäinen R:n käyttöön vakuutuksissa ( R in Insurance ) omistettu konferenssi.

Muistiinpanot

  1. Lyhyt historia arkistoitu 14. helmikuuta 2012, Wayback Machine R: Past and Future History, Ross Ihaka, tilastoosasto, Aucklandin yliopisto, Auckland, Uusi-Seelanti, saatavilla CRAN-verkkosivustolta
  2. 1 2 R: Tietojen analysoinnin ja grafiikan kieli
  3. https://www.r-project.org/about.html
  4. 1 2 3 4 Free Software Directory
  5. R: R-säätiö . Haettu 28. lokakuuta 2016. Arkistoitu alkuperäisestä 25. toukokuuta 2016.
  6. Teaching-with-R.pdf Arkistoitu 11. kesäkuuta 2016 Wayback Machinessa 
  7. R-Project on Solaris  (downlink)  (downlink alkaen 13-05-2013 [3461 päivää])
  8. InfoWorld Bossie Awards 2010 Arkistoitu 11. syyskuuta 2014.
  9. CRAN-avustetut paketit . cran.r-project.org. Haettu 8. joulukuuta 2019. Arkistoitu alkuperäisestä 13. maaliskuuta 2016.
  10. "Red Hat tilastoille" kulkee varpaisiin SAS:n kanssa . Haettu 29. syyskuuta 2017. Arkistoitu alkuperäisestä 7. heinäkuuta 2017.
  11. Oracle rullaa oman NoSQL:n ja Hadoopin . Haettu 29. syyskuuta 2017. Arkistoitu alkuperäisestä 7. heinäkuuta 2017.
  12. Prickett Morgan, Timothy Oracle työntää R stats -kielen tietokantaan  (eng.)  (linkki ei ole käytettävissä) . Rekisteri (10. helmikuuta 2012). Haettu 10. helmikuuta 2012. Arkistoitu alkuperäisestä 3. kesäkuuta 2012.
  13. Harris, Derrick . IBM luo Big Data Frankensteinin kanssa Netezza-R Fusion  (englanniksi) , The New York Times  (2011-03-141). Haettu 19. marraskuuta 2011.
  14. Rosenberg, Dave Avoimen lähdekoodin "R" saa Hadoop-integraation  (englanniksi)  (linkki ei ole käytettävissä) . cnet . CBS . Haettu 19. marraskuuta 2011. Arkistoitu alkuperäisestä 17. helmikuuta 2012.
  15. RSS Matters . Haettu 19. marraskuuta 2011. Arkistoitu alkuperäisestä 2. huhtikuuta 2012.
  16. CRAN-pääsolmu . Haettu 7. huhtikuuta 2007. Arkistoitu alkuperäisestä 5. tammikuuta 2008.
  17. R Journal . Käyttöpäivä: 30. joulukuuta 2010. Arkistoitu alkuperäisestä 17. helmikuuta 2010.
  18. CRAN:R Uutiset . Haettu 7. huhtikuuta 2007. Arkistoitu alkuperäisestä 28. toukokuuta 2007.

Kirjallisuus

  • Robert Kabakov. R toiminnassa = R toiminnassa. - DMK-Press , 2014. - 588 s. — ISBN 978-5-947060-077-1 .
  • Hadley Wickham, Garrett Growlmund. R for Data Science: Visualisoi, mallinna, muunna, siivoa ja tuo tiedot. - Williams , 2017. - 592 s. - ISBN 978-5-9909446-8-8 , 978-1-491-91039-9.
  • Norman Matloff R-ohjelmoinnin taito. Sukella suurdataan. = R-ohjelmoinnin taito: Tilastollisen ohjelmistosuunnittelun kierros. . -Pietari, 2019. - 416 s. -ISBN 978-5-4461-1101-5.

Linkit