# R (programlama dili)
R, istatistiksel hesaplama ve grafikler için yazılım ortamı olup aynı zamanda programlama dilidir. R Foundation tarafından desteklenen ve GNU Tasarısının parçası olan bir özgür yazılımdır. Yeni Zelanda Auckland Üniversitesinden Ross Ihaka ve Robert Gentleman tarafından ortaya çıkarılan R, hâlihazırda R Geliştirme Çekirdek Ekibi tarafından geliştirilmektedir. S programlama diline benzeyen R, S'nin uyarlaması olarak değerlendirilebilir.
İstatistikî yazılım geliştirme için istatistikçiler arasında de fakto standart haline gelen R, istatistikî yazılım geliştirme ve veri analizi alanında kullanılmaktadır.
R'nin kaynak kodları GNU Genel Kamu Lisansı altında olup değişik işletim sistemlerinde kullanılabilir durumdadır. R, komut satırı arayüzü kullanıyor olsa da değişik grafik kullanıcı arayüzleri de bulunmaktadır.


## Özellikleri.
R, çok geniş istatistiki (doğrusal ve doğrusal olmayan modelleme, klasik istatistik testleri, zaman serileri analizi, sınıflandırma, kümeleme ve diğer) ve grafik çizim teknikleri sunmaktadır. R de, S gibi tam anlamıyla programlama dili olarak tasarlanmış olup kullanıcıya yeni fonksiyonlar tanımlayarak ek özellikler geliştirme imkânı sunmaktadır. Bazı önemli farklılıklar olmasına rağmen S için yazılan kodlar aynen R'de de çalışır. R sisteminin büyük çoğunluğu aynı dille yazıldığından kullanıcının yapılan algoritmik seçimleri takip etmesi kolaylaşmaktadır. Yoğun hesaplamalar gerektiren görevler için C,C++ ve Fortran kodu çalışma zamanında bağlanıp çalıştırılabilmektedir. İleri düzey kullanıcılar R nesnelerinin manipülasyonu için C kodu yazabilirler.
R, kullanıcıların eklediği özel fonksiyonlar veya çok özel araştırma alanlarına ait paketlerle oldukça geliştirilebilirdir. S dilinin mirasından dolayı R, diğer birçok istatistiki hesaplama dilinden daha kuvvetli bir nesneye yönelik programlama kabiliyetine sahiptir.
R'nin bir diğer güçlü yönü matematiksel sembolleri de içeren yayın kalitesinde grafikler çizebilen grafik imkânlarıdır. R'nin ister çevrimiçi ister baskı amaçlı kullanılabilen çok geniş içerikli LaTeX benzeri belgelendirme imkânı vardır.


## Örnekler.
Bu örnekler dilin temel kurallarını ve komut satırının kullanımını göstermektedir.
> x <- c(1,2,3,4,5,6) # x sıralı 6'lısı oluştur
> y <- x^2 # y x'in elemanlarının karelerinden oluşsun
> mean(y) # y'nin aritmerik ortalaması
[1] 15.16667
> var(y) # Örnek varyansını hesapla
[1] 178.966
> summary(lm(y ~ x)) # y'nin x'e bağımlı doğrusal regresyon modeli
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)) # 2x2 lik çizim alanı oluştur
> plot(lm(y ~ x)) # Regresyon modelinin tanısal grafikleri


## Paketler.
R'nin yetenekleri kullanıcılarca eklenen "paketler"le geliştirilmektedir. Bu paketler belli uzmanlık alanlarıyla ilgili teknikler, gelişmiş grafik özellikleri, birçok harici dosya biçimini okuma/yazma yeteneği (SPSS, Matlab, Excel, MySQL bağlantıları vb.) gibi birçok özelliği R'ye kazandırmaktadır. R'nin standart kurulumunda temel paketler bulunuyor olsa da 2000'den çok paket CRAN'den (Geniş Kapsamlı R Yazılım Ağı) erişilebilirdir.


## Grafik kullanıcı arayüzleri.
  - RStudio - Kullanımı oldukça kolay ve gelişmiş bir arayüz. RStudio 
  - gretl - R gretl paket programının içerisinden kullanılabilir
  - Java Gui for R – Java diliyle yazılmış müstakil olarak çalışabilen R uçbirimi ve düzenleyicisi (JGR adıyla da anılıyor)
  - Rattle GUI - RGtk2 tabanlı ve özellikle veri madenciliği amaçlı hazırlanmış GUI
  - R Commander – tcltk tabanlı GUI
  - rggobi, Matris görselleştirme için GGobi arayüzü
  - RKWard – KDE kütüphanesi tabanlı
  - Sage – web tarayıcı arayüzü aynı zamanda rpy desteği
  - Statistical Lab
  - Deducer menü and hesap tablosu tabanlı GUI.


## R'nin ticari sürümleri.
R'nin destek ve hizmet imkânları içeren değişik ticari ve kurumsal sürümleri bulunmaktadır.
  - REvolution Computing tarafından sunulan ve paralel işlem yeteneklerine sahip ParallelR.
  - XL Solutions tarafından sunulan R+.
  - RStat 
  - R'ye benzeyen ve S'nin ticari bir sürümü olan S-PLUS.