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, halihazırda R Geliştirme Çekirdek Ekibi tarafından geliştirilmektedir. S programlama diline benzeyen R, S'nin uyarlaması olarak değerlendirilebilir.
İstatistiki yazılım geliştirme için istatistikçiler arasında de fakto standart haline gelen R, istatistiki 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 imkanı 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 imkanlarıdır. R'nin ister çevrimiçi ister baskı amaçlı kullanılabilen çok geniş içerikli LaTeX benzeri belgelendirme imkanı 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 paketlerle 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 imkanları 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.