R je programski jezik i programsko okruženje za statističke izračune i grafikone. R je izvedba S programskog jezika inspirirana Scheme-om. Originalni tvorci R-a su Ross Ihaka i Robert Gentleman sa sveučilišta Auckland na Novom Zelandu, a sada ga razvija R Development Core Team.

Jezik R postao je standard među statističarima i široko se koristi za razvoj statističkog softvera i analizu podataka.

R je dio GNU projekta. Izvorni je kod besplatan i pod uvjetima GNU General Public Licence, a unaprijed sastavljene binarne verzije nude se za različite operativne sustave. R koristi sučelje naredbenog retka, ali postoji i više grafičkih korisničkih sučelja.

Povijest R je implementacija programskog jezika S nadahnuta programskim jezikom Scheme. S je razvio John Chambers 1976. godine za vrijeme rada u Bell Labs. Postoje razlike između dva prethodno spomenuta programska jezika, međutim velik dio koda napisanog za "S" stoji nepromijenjen.https://www.r-project.org/about.html Pristupljeno 04.02.2020. R su razvili Ross Ihaka i Robert Gentleman sa Sveučilišta Auckland na Novom Zelandu, a trenutno ga nadograđuje i razvija R Development Core Team. R je dobio ime po dvojici izvornih autora, a dijelom i kao igra riječi, jer je S naziv programskog jezika na temelju kojeg je nastao R. Projekt je započeo 1992. godine, prva verzija objavljena je 1995. godine, a stabilna beta verzija 2000.https://blog.revolutionanalytics.com/2016/03/16-years-of-r-history.html Pristupljeno 04.02.2020.https://www.stat.auckland.ac.nz/~ihaka/downloads/Massey.pdf Pristupljeno 04.02.2020.

Značajke R pruža širok raspon statističkih (linearni i nelinearni modeli, klasični statistički testovi, analiza vremenskih serija, klasifikacije, klasteri, itd.) i grafičkih tehnika. R je dizajniran kao pravi programski jezik, a korisnicima omogućuje dodatne funkcije definiranjem novih funkcija. Postoji nekoliko važnih razlika, ali R može koristiti velik dio nepromijenjenog S koda. Većina R-ovog sustava također je napisana na ovom jeziku, što korisnicima olakšava oblikovanje algoritama. Za zahtjevne zadatke mogu se povezati i pokrenuti C, C ++ i Fortran kod. Napredni korisnici mogu napisati C kôd za izravno upravljanje R objektima.

R se može proširiti putem korisničkih paketa koji omogućuju upotrebu specijaliziranih statističkih alata. Budući da je inspiriran S-om, R ima bolju podršku za objektno orijentirano programiranje od ostalih statističkih programskih jezika. Proširivost R-a također je olakšana jezičnim rasponom.

Još jedna prednost Ra-a su njegove grafičke mogućnosti, koje pružaju grafiku dovoljno dobre kvalitete za objavljivanje u publikacijama koja uključuje matematičke simbole. R ima vlastiti format dokumenta poput LaTeX- a, koji se koristi za predstavljanje sveobuhvatne dokumentacije, putem Interneta u brojnim formatima ili u tiskanom obliku.

Osim kao okruženje za statističke izračune i razvoj softvera, R se također može koristiti kao općeniti alat za izračunavanje matrica izvedbe usporedive s GNU Octave i MATLAB-om. Sučelje RWeka dodano je popularnom Weka softveru za rudarenje podataka koji omogućuje mogućnost pisanja i čitanja u arff formatu.

R paketi Mogućnosti R-a proširuju se pomoću takozvanih paketa koje izrađuju i objavljuju korisnici, a koji omogućuju upotrebu specijaliziranih statističkih alata, alata za grafički prikaz (npr. Ggplot2), alate za uvoz / izvoz podataka, za izradu izvješća (knitr, Sweave) itd. Ovi su paketi razvijeni prvenstveno u R-u, ali ponekad se u razvoju koriste i Java, C ili Fortran.

Primjeri

Osnovna sintaksa Sljedeći primjer prikazuje osnovnu sintaksu i upotrebu naredbenog retka.

Prilikom unosa koda poželjno je koristiti strelice sastavljene od dva znaka <-, ali je moguće koristiti i znakove jednakosti =.

> x <- 1:6 # Create a numeric vector in the current environment > y <- x^2 # Create vector based on the values in x. > print(y) # Print the vector’s contents. 1 4 9 16 25 36

> z <- x + y # Create a new vector that is the sum of x and y > z # return the contents of z to the current environment. 2 6 12 20 30 42

> z_matrix <- matrix(z, nrow=3) # Create a new matrix that turns the vector z into a 3x2 matrix object > z_matrix [,1] [,2] [1,] 2 20 [2,] 6 30 [3,] 12 42

> 2*t(z_matrix)-2 # Transpose the matrix, multiple every element by 2, subtract 2 from each element in the matrix, and return the results to the terminal. [,1] [,2] [,3] [1,] 2 10 22 [2,] 38 58 82

> new_df <- data.frame(t(z_matrix), row.names=c('A','B')) # Create a new data.frame object that contains the data from a transposed z_matrix, with row names 'A' and 'B' > names(new_df) <- c('X','Y','Z') # set the column names of new_df as X, Y, and Z. > print(new_df) #print the current results. X Y Z A 2 6 12 B 20 30 42

> new_df$Z #output the Z column 12 42

> new_df$Z==new_df['Z'] && new_df==new_df$Z # the data.frame column Z can be accessed using $Z, ['Z'], or syntax, and the values are the same. TRUE

> attributes(new_df) #print attributes information about the new_df object $names "X" "Y" "Z"

$row.names "A" "B"

$class "data.frame"

> attributes(new_df)$row.names <- c('one','two') ## access and then change the row.names attribute; can also be done using rownames() > new_df X Y Z one 2 6 12 two 20 30 42

Funkcije Jedna od prednosti R-a je lakoća stvaranja novih funkcija. Objekti ostaju lokalni za funkciju i mogu se vratiti u bilo koji tip podataka. # Declare function “f” with parameters “x”, “y“ # that returns a linear combination of x and y. f <- function(x, y) { z <- 3 * x + 4 * y return(z) # the return() function is optional here } > f(1, 2) 11

> f(c(1,2,3), c(5,3,4)) 23 18 25

> f(1:3, 4) 19 22 25

Modeliranje i grafički prikazi R ima ugrađenu podršku za modeliranje podataka i grafiku. Sljedeći primjer prikazuje kako R može lako generirati i iscrtati linearni model. desno|mini|300x300px| Dijagnostički grafovi izrađeni pomoću funkcije plot.lm (). > x <- 1:6 # Create x and y values > y <- x^2 > model <- lm(y ~ x) # Linear regression model y = A + B * x. > summary(model) # Display an in-depth summary of the model.

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)) # Create a 2 by 2 layout for figures. > plot(model) # Output diagnostic plots of the model.

Mandelbrotov skup Sljedeći primjer prikazuje R kod koji izračunava Mandelbrotov skup kroz prvih 20 ponavljanja jednadžbe z = z2 + c za različite konstante c.

Osim toga, ovaj primjer prikazuje: korištenje vanjskih knjižnica koje su razvile zajednice (zvane paketi), u ovom slučaju caTools paket višedimenzionalne nizove brojeva koji se koriste kao osnovni tip podataka, pogledajte varijable C, Z i X. desno|mini|300x300px| Grafički prikaz primjera Mandelbrotovog skupa kreiranog u R-u. install.packages("caTools") # install external package library(caTools) # external package providing write.gif function jet.colors <- colorRampPalette(c("red", "blue", "#007FFF", "cyan", "#7FFF7F", "yellow", "#FF7F00", "red", "#7F0000")) dx <- 1500 # define width dy <- 1400 # define height C <- complex(real = rep(seq(-2.2, 1.0, length.out = dx), each = dy), imag = rep(seq(-1.2, 1.2, length.out = dy), dx)) C <- matrix(C, dy, dx) # reshape as square matrix of complex numbers Z <- 0 # initialize Z to zero X <- array(0, c(dy, dx, 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 = 100)

Sučelje

Grafičko korisničko sučelje RKWard - proširivo grafičko korisničko sučelje i integrirano razvojno okruženje okruženje za R. RStudio - međuplatformsko integrirano razvojno okruženje otvorenog koda (također se može pokrenuti na Linux poslužitelju). Deducer - grafičko korisničko sučelje za analizu podataka (slično SPSS / JMP / Minitab). Java GUI for R - Nezavisni R terminal i uređivač koji se temelji na Javi (poznat i kao JGR). Rattle GUI - cross-platform grafičko korisničko sučelje otvorenog koda zasnovano na RGtk2 (R za Gimp Tool Kit). R Commander - višeplatformsko grafičko korisničko sučelje zasnovano na tcltk. RExcel - povezivanje aplikacije Microsoft Excel s programskim jezikom R. RGUI - dolazi s prekompajliranom verzijom R-a za Microsoft Windows. RWe - omogućuje rudarenje podataka pomoću Weka i statističku analizu u R-u. Tinn-R - program otvorenog koda koji uključuje razvojno okruženje s isticanjem sintakse, slično, na primjer MATLAB-u. Tinn-R dostupan je samo za Microsoft Windows. R Tools for Visual Studio - dodatak za Microsoft Visual Studio, koji omogućuje upotrebu R jezika.

Jezici skriptiranja

R funkcije su dostupne u nekoliko skriptnih jezika kao što su Python (RPY paket), Perl (Statistics::R modul), Ruby (RSRuby knjižnica) i F # (R Type Provider). Skriptiranje je moguće i putem Littlera te RDEMO-a.

useR! konferencije Službeno godišnje okupljanje korisnika R naziva se "useR!". Prva takva konferencija održana je u Austriji u svibnju 2004. godine. Konferencija nije održana 2005. godine, ali se zato održaval svake naredne godine, obično naizmjenično između lokacija u Europi i Sjevernoj Americi. Lista održanih konferencija:

useR! 2006., Beč, Austrija useR! 2007., Ames, Iowa, SAD useR! 2008., Dortmund, Njemačka useR! 2009., Rennes, Francuska useR! 2010., Gaithersburg, Maryland, SAD useR! 2011., Coventry, Ujedinjeno Kraljevstvo useR! 2012., Nashville, Tennessee, SAD useR! 2013., Albacete, Španjolska useR! 2014., Los Angeles, Kalifornija, SAD useR! 2015., Aalborg, Danska useR! 2016., Stanford, Kalifornija, SAD useR! 2017., Bruxelles, Belgija useR! 2018., Brisbane, Australija useR! 2019., Toulouse, Francuska useR! 2020., St. Louis, Missouri, SAD (održano online zbog pandemije COVID-19)

Izvori

Vanjske poveznice Službena stranica R-a

Kategorija:Programski jezici