Toggle menu
310,1 tis.
36
18
525,5 tis.
Hrvatska internetska enciklopedija
Toggle preferences menu
Toggle personal menu
Niste prijavljeni
Your IP address will be publicly visible if you make any edits.

R (programski jezik)

Izvor: Hrvatska internetska enciklopedija
Inačica 406223 od 2. siječanj 2022. u 10:13 koju je unio WikiSysop (razgovor | doprinosi) (Bot: Automatska zamjena teksta (-{{Cite web +{{Citiranje weba))
(razl) ←Starija inačica | vidi trenutačnu inačicu (razl) | Novija inačica→ (razl)
Za druga značenja, pogledajte R.
R

R korisničko sučelje
Izdavač:R Development Core Team[1]; Ross Ihaka i Robert Gentleman
Platforma:Cross-platform
Vrsta:
Licencija:GNU GPL v2[2]
Web stranica: http://www.r-project.org/

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 [3] sa sveučilišta Auckland na Novom Zelandu, a sada ga razvija R Development Core Team. [4]

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

R je dio GNU projekta. [6] 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. [7] 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. [8] 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. [9] [10] [11]

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 nepromjenjenog 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. [12]

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. [13] Sučelje RWeka dodano je popularnom Weka softveru za rudarenje podataka koji omogućuje mogućnost pisanja i čitanja u arff formatu. [14]

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]  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.
[1]  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
[1] 12 42

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

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

$row.names
[1] "A" "B"

$class
[1] "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.[15]

# 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)
[1] 11

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

> f(1:3, 4)
[1] 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.

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.
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: [16]

  • 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

  1. Hornik, Kurt (26. studeni 2015.). "R FAQ". 2.1 What is R?. https://cran.r-project.org/doc/FAQ/R-FAQ.html#What-is-R_003f Pristupljeno 5. kolovoz 2018. 
  2. "R license". r-project. https://www.r-project.org/COPYING Pristupljeno 5. kolovoz 2018. 
  3. "Robert Gentleman's home page". http://gentleman.fhcrc.org/ Pristupljeno 20. 7. 2009. 
  4. 4,0 4,1 Fox, John and Andersen, Robert (January 2005). Using the R Statistical Computing Environment to Teach Social Statistics CoursesUsing the R Statistical Computing Environment to Teach Social Statistics Courses ([PDF]), Department of Sociology, McMaster University. pristupljeno 3. 8. 2006..
  5. Vance, Ashlee (6. 1. 2009.). "Data Analysts Captivated by R's Power". New York Times. http://www.nytimes.com/2009/01/07/technology/business-computing/07program.html Pristupljeno 28. 4. 2009.. "R is also the name of a popular programming language used by a growing number of data analysts inside corporations and academia. It is becoming their lingua franca..." 
  6. "What is R?". http://www.r-project.org/about.html Pristupljeno 28. 4. 2009. 
  7. https://www.r-project.org/about.html Pristupljeno 04.02.2020.
  8. Thieme, Nick (1. kolovoz 2018.). "R generation" (engl.). Significance 15 (4): 14–19. http://doi.wiley.com/10.1111/j.1740-9713.2018.01169.x Pristupljeno 4. veljača 2020. 
  9. https://blog.revolutionanalytics.com/2016/03/16-years-of-r-history.html Pristupljeno 04.02.2020.
  10. https://www.stat.auckland.ac.nz/~ihaka/downloads/Massey.pdf Pristupljeno 04.02.2020.
  11. Eddelbuettel, Dirk (2011). "Rcpp : Seamless R and C++ Integration" (engl.). Journal of Statistical Software 40 (8). http://www.jstatsoft.org/v40/i08/ Pristupljeno 4. veljača 2020. 
  12. Jackman, Simon (2003). "R For the Political Methodologist". The Political Methodologist 11 (1): 20–22. http://polmeth.wustl.edu/tpm/tpm_v11_n2.pdf Pristupljeno 3. kolovoz 2006. 
  13. "Speed comparison of various number crunching packages (version 2)". SciView. http://www.sciviews.org/benchmark Pristupljeno 3. 11. 2007. 
  14. "RWeka: An R Interface to Weka. R package version 0.3-17". Kurt Hornik, Achim Zeileis, Torsten Hothorn and Christian Buchta. http://CRAN.R-project.org/package=RWeka Pristupljeno 2009 
  15. Kabacoff, Robert (2012). "Quick-R: User-Defined Functions". http://www.statmethods.net/management/userfunctions.html Pristupljeno 28. rujan 2018. 
  16. "R: Conferences". 1. studeni 2019.. https://www.r-project.org/conferences/ Pristupljeno 19. studeni 2019. 

Vanjske poveznice