R (programski jezik)

U računarstvu, **R** je programski jezik i programsko okruženje za statističke izračune i grafike. On je izvedba S programskog jezika sa leksičkom semantikom inspirisanom Scheme (programski jezik) -om. R su stvorili Ros Ihaka i Robert DŽentlmen na Aukland univerzitetu (University of Auckland), Novi Zeland, a sad ga razvija *R Development Core Team*. Nazvan je djelimično prema imenima autora, a djelom kao igra riječi na ime S.

R jezik je postao standard među statističarima koji razvijaju statistički softver, i široko je korišćen za razvoj statističkog softvera i analizu podataka.

R je dio GNU projekta. NJegov izvorni kod je slobodan i pod uslovima koje daje GNU-ova opšta javna licenca, a prekompilirane binarne verzije su obezbjeđene za različite operativne sisteme. R koristi interfejs komandne linije, kroz više grafičkih korisničkih okruženja.

## Historija
R je implementacija programskog jezika S u kombinaciji inspiriran programskim jezikom Scheme. "S" je razvio John Chambers 1976. godine tijekom svog rada u tvrtki Bell Labs. Postoje razlike izmedu dva prethodno navedena programska jezika, međutim veliki dio koda napisan za "S" stoji nepromijenjen. R su razvili Ross Ihaka i Robert Gentleman sa Sveučilišta u Aucklandu na Novom Zelandu te ga trenutno nadograđuje i razvija R Development Core Team, čijeg je John Chambers i danas član. R je dobio ime po imenima dva prvotna autora te djelomično kao igra riječi budući da je S ime programskog jezika na čijem je temelju nastao R. Projekt je započet 1992. godine, a prva verzija izdana je 1995., a stabilna beta verzija 2000. godine.

## Osobine
 
R obezbjeđuje širok izbor statističkih (linearnih i nelinearnih modela, klasičnih statističkih testova, analiza vremenskih serija, klasifikacija, klasteri, i ostalo) i grafičkih tehnika. R, je slično kao S, projektovan kao pravi programski jezik, i omogućava korisnicima dodatnu funkcionalnost definisanjem novih funkcija. Postoji više važnih razlika, ali dosta koda može biti iskorišten kao S, nepromjenjen. Mnogo R-ovog sistema je takođe pisana u ovom jeziku, što ga čini lakšim za korisnike pri formiranju algoritama. Kod zahtjevnih zadataka, C, C++ i Fortran kod može biti povezan i pokrenut. Napredni korisnici mogu pisati C kod za manipulisanje R-ovih objekata direktno.

R može biti proširen, kroz pkete obezbjeđene od korisnika, za specifične funkcije ili specifične oblasti proučavanja. Zbog svog S nasleđa, R ima bolju podršku za Objektno-orijentisano programiranje nego ostali statistički programski jezici. Proširivost R-a je olakšana i njegovim popustljivim jezičkim opsegom.

Sljedeća prednost R-a su njegove grafičke mogućnosti, koje obezbjeđuju grafike kvaliteta dovoljno dobrog za publikovanje koji uključuju matematičke simbole. R ima sopstveni LaTeX-oliki format dokumenata, koji se koristi za predstavljanje sveobuhvatne dokumentacije, preko interneta u brojnim formatima ili kao štampana kopija.

Iako je R pretežno korišten od statističara i praktičara koji zahtjevaju okruženje za statističke proračune i razvoj softvera, takođe može biti korišten kao opšti alat za izračunavanje matrica učinka uporedivog sa onim od GNU Oktav i njegovog vlasničkog konkurenta, MATLAB.
RWeka sučelje je dodato popularnom softveru za izlučivanje podataka Weka koje dozvoljava mogućnost upisa i čitanja u arff formatu koji dalje omogućava korištenje mogućnosti programa.

## Primjeri

Sljedeći primjeri ilustruju osnove sintakse jezika i korištenje komandne linije.


```
> x <- c(1,2,3,4,5,6)   # Create ordered collection
> y <- x^2              # Square the elements of x
> mean(y)               # Calculate arithmetic mean of y
[1] 15.16667
> var(y)                # Calculate sample variance
[1] 178.9667
> summary(lm(y ~ x))    # Fit a linear regression 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))    # Request 2x2 plot layout
> plot(lm(y ~ x))       # Diagnostic plot of regression model
```


## Povezano
* Lista statističkih paketa
* Poređenje statističkih paketa

## Reference

## Literatura

*