R Asddal

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Akademik Biliim10 - XII.

Akademik Biliim Konferans Bildirileri


10 - 12 ubat 2010 Mula niversitesi

statistiksel Yazlm Gelitirme Ortam: R


A.Frat zdemir1, Engin Yldztepe1, Mustafa Binar2
1
Dokuz Eyll niversitesi, Fen-Edebiyat Fakltesi, statistik Blm, zmir
2
Dokuz Eyll niversitesi, Fen Bilimleri Enstits, statistik Anabilim Dal, zmir
firat.ozdemir@deu.edu.tr, engin.yildiztepe@deu.edu.tr, mustafa_binar@mynet.com

zet: Gnmzde, yeni gelitirilen yntem ve algoritmalar iin yazlm gelitirme amacyla kul-
lanlabilecek pek ok yazlm gelitirme ortam bulunmaktadr. Bu almada, son yllarda zel-
likle akademik almalarda yaygn olarak kullanlan R programlama dilinden bahsedilmitir.
zellikle veri ileme, hesaplama, grafiksel gsterim ve istatistiksel yntemler iin tasarlanan R,
1997 ylndan bugne dnyann farkl yerlerindeki aratrmaclarn katklar ile gelitirilmi ve
cretsiz olarak ulalabilen bir programlama dilidir.

Anahtar Szckler: R programlama dili, istatistiksel yazlm gelitirme

Statistical Software Development Environment: R

Abstract: Today, there are many software development environments for newly developed meth-
ods and algorithms. In this study, programming language R which is especially used for academic
purposes has been presented. R which has been developed with the contribution of many research-
ers all over the world since 1997 is integrated software, designed especially for data manipula-
tion, calculation, graphical display and statistical methods. R can be reached free of charge.

Keywords: R programming language, statistical software development

1. Giri bir istatistiksel programlama dilidir. Gelien


ve deien S dilinin ticari srm 1988 ylnda
R dili ilk olarak Yeni Zelandadaki Aucland piyasaya srlen S-PLUStr. S-PLUS gn-
niversitesi statistik Blmnden Ross Iha- mzde TIBCO isimli bir yazlm irketi tara-
ka ve Robert Gentleman tarafndan yazlm- fndan pazarlanmaktadr. S-PLUS yazlmnn
tr. Daha sonra dnyann eitli yerlerindeki akademik ve retim amal kullanlmasnda
aratrmaclardan oluan bir grup R dilini ge- lisans cretlerinin pahal bulunmas nedeniyle
litirmeye devam etmitir. Bu grup 1997de R Yeni Zelandal iki istatistiki Ross Ihaka ve
Core Team olarak adlandrlmtr. R prog- Robert Gentleman, R adn verdikleri prog-
ramlama dili bu grupta yer alan aratrmacla- ramlama dilini gelitirmeye karar vermilerdir.
rn katklar ile gnmzde kullanlan biimini R kodlar 1995 ylnda genel kamu lisansyla
almtr.[2] R dilinin tasarm nemli lde (GPL-General Public License) yaynlanm ve
Becker, Chamber, ve Wilksin gelitirdii S dili ksa srede oluturulan core team tarafndan
ile Sussmann gelitirdii Scheme dillerinden gelitirilen ilk srm 29 ubat 2000 tarihinde
etkilenmitir. Grnm zellikleri asndan S yaynlanmtr.[2]
diline benzeyen R, uygulama ve anlamsal yn-
den Scheme diline yakndr. S dili, ilk srm R ve S-PLUS dilleri benzer komut satrna sa-
1976 ylnda tamamlanan ve o dnemlerde is- hiptirler. Bu dillerde yazlan programlarn bir-
tatistiksel hesaplama yordamlarnda tercih edi- ou dierinde de uygulanabilir. Her ikisi de
len Fortran diline alternatif olarak gelitirilen ok baarl veri zmleme sonular ortaya
293
statistiksel Yazlm Gelitirme Ortam: R
A.Frat zdemir, Engin Yldztepe, Mustafa Binar

koymaktadr.[8] Ancak R ak kaynak kodlu ve Dizi ve zellikle matris hesaplamalarnda


dnyann eitli yerlerindeki aratrmaclar ta- kullanlabilecek zel operatrler mevcuttur.
rafndan gelitirilen bir programlama dilidir. Veri analizi iin kullanlabilecek uyumlu
ve bir arada kullanlabilen aralar ierir.
R istatistiksel yazlm gelitirme ortam veri Veri zmlemede kullanlabilecek gra-
maniplasyonu, hesaplama ve grafik gste- fiksel aralara sahiptir.
rim iin tasarlanmtr. Yeni gelitirilen veri S dili gibi basit, etkili bir programlama
zmleme yntemleri iin kullanlabilecek dilidir. [14]
uygulamalar R ile hzl bir biimde yazlabi-
lir. R dilinin sz dizimi kurallar (syntax) C Kullanlacak olan veri dosyalarnn R ortamna
diline benzerlik gsterir [9]. Fonksiyonel bir alnabilmesi iin farkl seenekler vardr. Metin
programlama dili olan R istatistikiler ve ma- dosyalarndan (txt), hesap tablosu dosyalarn-
tematikiler iin kod yazmay kolaylatran dan (xls, sav), binary ve dbase (dbf) dosyalarn-
fonksiyonlara sahiptir. Bu fonksiyonlar bir gir- dan veri almak mmkndr. Gerekli paketleri
di ifadesi olarak kullanlarak ilem sonular ykleyerek farkl veritabanlarndan da(MySQL,
tek satrlk komutlarla elde edilebilir. zellikle Access, Microsoft SQL Server, Postgre SQL,
bir istatistikinin veri zmleme ve grafiksel Oracle, IBM DB2) veri almak mmkndr. An-
gsterimlerde kullanabilecei zel fonksiyon- cak R ok byk boyutlu veritaban dosyalar
lara sahiptir.[1] ile almak iin uygun deildir.[10]

Yaplan bu alma ile R programlama dili ta- Ak kaynak kodlu bir yazlm olan R nin ku-
ntlm ve zellikle istatistikiler iin nemine rulumunun ve kaynak kodunun, Unix, Linux,
deinilmitir. FreeBSD, Windows ve MacOs gibi iletim
sistemlerinde kullanlabilecek farkl srmleri
almann sonraki blmlerinde, R dilinde R-Project web sitesinden temin edilebilir.
kullanlan nesneler, nesne olarak fonksiyonlar
ve yardmn kullanlmasndan bahsedilmitir. 2.1. Rde Nesne Kavram ve Nesneler:
Birok programlama dilinde deikenler bel-
Sonu blmnde ise, R dilinin gl ve zayf lekte saklanan veriye dorudan eriimi salar.
ynleri belirtilerek dier istatistiksel yazlm Ancak R, bellee direkt eriim yerine zel veri
paket programlar ile karlatrlmasna yer yaplarn kullanr. Bu veri yaplar sembol ve
verilmitir. deikenlerin referans olarak kullanld nes-
nelerdir. R programlama dilindeki temel nesne
2. R statistiksel Programlama Dili trleri aada verilmitir. [9]

R-Project web sitesinde yaplan tanma gre Vektrler: R de alt farkl temel vektr
R, istatistiksel hesaplamalar ve grafikler iin tipi bulunmaktadr; logical, integer, real,
bir dil ve ortamdr.[6] R, yaygn olarak kulla- complex, string ve raw.
nlan SPSS, SAS, STATA gibi istatistik paket Listeler: Listeler de vektrdr ancak liste-
programlardan farkldr. R bir istatistik paket deki elemanlar farkl tiplerde olabilir.
program deil istatistiksel yazlm gelitirme fade: Bir veya daha fazla deyimden olu-
ortamdr.[13] an nesnelerdir.
Fonksiyonlar
R programlama dilinin baz temel zellikleri NULL: zel bir nesnedir. Bir nesnenin
aada verilmitir. bo olup olmadnn belirlenmesi veya
Etkin veri ileme ve saklama zelliine bo yaplmas iin kullanlr.
sahiptir. Ortamlar: new.env komutu ile oluturulur.
294
Akademik Biliim10 - XII. Akademik Biliim Konferans Bildirileri
10 - 12 ubat 2010 Mula niversitesi

Sembol-deer iftlerini ieren bir ereve da yazlan fonksiyonlardan oluan paketlerin R


ve bir kapsamdan meydana gelir. web sitesinden temin edilerek yklenebilmesi-
dir. Install.package() ve update.package() fonk-
R de ayrca zel bileimli nesneler denilen siyonlar R komut satrndan istenilen paketin
faktr ve veri ereve nesneleri de vardr. indirilmesi ve yklenmesi iin kullanlrlar.

2.2. Rde Nesne Olarak Fonksiyonlar: 2.3. R Kaynak Kod (SourceCode) Dosyas
Rde fonksiyonlar da bir nesne trdr ve di- R dilinde komut satrna girilen sz dizim kural-
er nesneler gibi kullanlr. Fonksiyonlarn lar ayn zamanda metin dosyalarna da yazla-
temel bileeni vardr. bilir. Bu durumda metin dosyas uzants *.R
olarak kaydedilir. Bu ekilde kaydedilmi bir
1. Argman listesi: Bu listede fonksiyonun dosya artk R script dosyasdr. R de bu script-
argmanlar virglle ayrlarak belirtilir. leri kaynak olarak kullanmak iin ana mende
2. Gvde Blm: Tek bir ifade veya dei- Dosya-file-open script komutu verilir.
kenden oluabildii gibi bir dizi ifadenin
yer ald ve { ile }arasnda belirtilen Baka bir metin editrnde bulunan komutla-
ksmdr. r tekrar komut satrna yazmadan altrmak
3. Fonksiyon Ortam: Fonksiyon oluturu- mmkndr. File mensnden New Script
lurken aktif olan ortamdr. komutu seildiinde alan R Editore istenilen
komutlar yazlabilir veya kopyalanabilir. Bu
editrdeki istenilen satrlar altrmak iin bu
satrlar iaretledikten sonra Ctrl+R tu kombi-
nasyonu kullanlr.[2]

2.4. p Toplayc (Garbage Collector):


p toplayclar programlama dillerinde dina-
mik bellek ynetimini stlenen sistemlerdir.
Programn yazlmas ve almas srasnda bel-
lek ynetimini gerekletirerek bellek sznts
ekil 1. Fonksiyon rnei (memory leak) ve geersiz iaretiler (dangling
pointer) gibi olas bellek ynetimi hatalarn n-
Yukardaki b.median isimli fonksiyon ortanca- lerler. Bylece hafza ynetiminin yk progra-
nn standart hatasnn bootstrap tahminini bulur. m yazan kiide deil programlama dilinde olur.
[5] Burada data ve num argmanlar, fonksiyon Lisp, SmallTalk, Eiffel, Haskell, ML, Scheme,
arlrken kullanlacak vektr ve bootstrap Python, Java, .NET gibi pek ok programlama
rneklem saysdr. Bu fonksiyonun data1 vek- dili ya da uygulama gelitirme ortam tm bellek
tr ile 20 bootstrap rneklem treterek ortan- ynetimini p toplayclar ile yapar. R program-
cann standart hatasnn bootstrap tahminini ve lama dilinde 1.2.0 srmnden bu yana kuak
retilen rneklemleri b1 isimli bir liste nesnesi- yaklamnn kullanld p toplayc vardr. R
ne yazmas iin aadaki komut kullanlr. de bellek kullanm durumunu izlemek iin gc
b1<b.median(data1,20) ve gcinfo fonksiyonlar kullanlr.[11,12]

R fonksiyonlar ayr paketler halinde dzen- 2.5. Yardmn Kullanlmas


lenmilerdir. Bylece sadece ihtiya duyulan R istatistiksel yazlm gelitirme ortamnda
fonksiyonlarn olduu paket yklenerek daha farkl kaynaktan yardm alma imkan vardr.
az bellek kullanm ve daha hzl ilem gc lki evrim ii yardm, ikincisi Rnin yardm
salanabilir. Bu paketlerin bir baka avantaj mens, ncs ise R-Project web sitesinde
295
statistiksel Yazlm Gelitirme Ortam: R
A.Frat zdemir, Engin Yldztepe, Mustafa Binar

bulunan klavuzlardr. [10] ve [14] nolu kay- dilinin tantlmas hedeflenmitir. R, cretsiz
naklar balang aamasnda olan kullanclar olarak temin edilmesi ve dnyann eitli bl-
iin ok yararldr.[4] gelerindeki aratrmaclarn bu dilin geliimine
destek vermesi sonucunda, zellikle veri ileme
Rde yardm kullanmann en kolay yolu kul- ve zmleme alanlarnda alan kullanclarn
lanc ara yzndeki aralar blmnde yer dikkatini ekmitir. Bu dilin gl ynleri;
alan Help mensn kullanmaktr.[2]
cretsiz temin edilebilmesi,
Yukarda bahsedilenden farkl olarak Help nesne ynelimli bir programlama dili
mensnde, Rde bir fonksiyonun nasl kulla- olmas,
nld ve parametrelerinin ne olduu hakknda farkl amalar iin gelitirilmi paketler ek-
yardm salayan fonksiyonel yardm mev- lenerek fonksiyonelliinin arttrlabilmesi,
cuttur. Fonksiyonel yardma Help mensn- 2-D, 3-D ve daha fazla boyutlu gelimi
den R functions tklanarak veya komut satr- grafik aralarna sahip olmas,
na help(fonksiyon ismi) yazarak eriilebilir.
help komutu iki farkl ekilde kullanlabilir. olarak sralanabilir. Aadaki zellikleri ise
Bu yntemler aada gsterilmitir: zayf ynleri olarak belirtilebilir:
>help(mean)
veya renmesi zor bir programlama dilidir.
>?mean Gelimi veri ileme zelliklerine sahip
olmasna ramen bunlarn kullanlabil-
Bu iki yntem de Rde fonksiyon ismi bilin- mesi zellikle dizi ve matris ilemlerine
diinde kullanlabilir. Fonksiyon isminin bi- hkim olmay gerektirir.
linmedii durumlarda kullanlabilecek yardm ok byk veri dosyalar ile almak iin
komutlar aada belirtilmitir:[2,4] uygun deildir. Birka yz megabyte dan
daha byk veri dosyalar almak isten-
1. help.search(.): Parantez iinde be- diinde yetersiz bellek sorunu meydana
lirtilenle ilgili yardm konularn listeler. gelebilir.[10]
rnein >help.search(data input) komu- Ticari bir rn olmad iin kullanmnda
tu data input konusunun getii yardm karlalan sorunlarn iletilecei mteri
konularn listeler. destek birimi yoktur.
2. find(.): Parantezde belirtilen kelime-
nin getii paketin ismini bulur. rnek: Wegman ve Solkaya gre istatistik paket
> find(lowess) programlarnn Microsoftu olarak nitelendiri-
[1] package:stats len SAS, daha ok kurumsal lekte kullanlan
3. apropos(.): Parantez iinde belirtilenle bir paket programdr.[15] SAS, zellikle veri
ilgili btn nesnelerin isimleri bir vektr madencilii ve bir ok alanda kullanlabilen
olarak listelenir. rnek: uygulama aralarna sahip ok kapsaml bir pa-
> apropos(lm) ket programdr ve bu zellikleri onu, bu alann
[1].__C__anova.glm en byk ve en pahal paket programlarndan
.__C__anova.glm.null biri yapmaktadr. Statistical Packages for Soci-
.__C__glm al Science (SPSS) ise dnya leinde rekabet
gcne sahip bir baka istatistik paket progra-
3. Sonu mdr ve zellikle sosyal ve eitim bilimleri
alannda kullanc bulmaktadr.
Bu almada, son yllarda akademik alma-
larda yaygn olarak kullanlan R programlama
296
Akademik Biliim10 - XII. Akademik Biliim Konferans Bildirileri
10 - 12 ubat 2010 Mula niversitesi

Yaygn olarak kullanlan SAS, SPSS gibi is- [3] Dalgaard P., Introductory Statistics with
tatistik paket programlar ile R arasndaki en R,Springer Series, Denmark, 9-11(2008)
nemli fark R nin bir paket program deil is-
tatistiksel hesaplamalar ve grafikler iin kulla- [4] Everitt B. S. , Hothorn Torsten , A Hand-
nlabilecek bir istatistiksel yazlm gelitirme book of Statistical Analyses Using R, London
ortam ve programlama dili olmasdr.[13] 1-3, 4-5(2005)

Windows ve Unix platformlarnda kullanla- [5] http://www.ats.ucla.edu/stat/R/library/bo ots-


bilen S Plus ile Windows, Unix, MacOS plat- trap.htm, R Library: Introduction to Bootstrap-
formlarnda kullanlabilen R, kullanc ara yz ping, Ucla Academik Technology Services
dnda pek ok adan birbirine benzemekte
olup bu dillerden birinde yazlan bir kod ge- [6] http://www.r-project.org/, What is
nellikle dierinde de altrlabilir. Ancak sz R?,(2009)
dizimi kurallarndaki baz ufak gzken farklar,
komutlarn iletilmesi sonucu farkl sonular [7] Ihaka, R., & Gentleman, R., R: A Langu-
kmasna neden olabilecek kadar nemlidir.[7] age for Data Analysis and Graphics, Journal
of Computational and Graphical Statistics,
Bu iki dili birbirinden ayran en nemli zellik 5(3), 299-314 (1996)
Ihaka ve Gentleman tarafndan gelitirilmeye
balanan ve R Core Team tarafndan gelitirilme- [8] Lumley T., R Fundamentals and Program-
si devam eden Rnin cretsiz bir dil olmasdr. ming Techniques, Birmingham 3-4(2006)

Bu almada, yeni gelitirilen istatistiksel [9] R Development Core Team, R Language


yntemler iin yazlan paketlerin kullanclar Definition, 2-8, 26(2008)
tarafndan kolaylkla yklenebildii ve ista-
tistikte nemli bir alma alan olan dayankl [10] R Development Core Team, R Data Im-
(robust) istatistiksel yntemleri kullanmak iin port/Export, 2-4(2008)
gereken fonksiyonlara sahip olmas nedeniyle
zellikle bu alanda alan aratrmaclar ta- [11] R Development Core Team, R Internals,
rafndan tercih edildii gzlenen ak kaynak 11-12(2008)
kodlu ve cretsiz bir programlama dili olan R,
tarihesi, yardm seenekleri, nesne kavram, [12] R Development Core Team, R: A
fonksiyonlar ve dier zellikleri ile incelen- Language and Environment for Statistical
mitir. R, akademik almalarn yan sra is- Computing,182-183(2009)
tatistik ve matematik eitiminde de lisanslama
problemi olmadan ihtiyalar karlayabilecek [13] Statistical Computing Group, Very Ba-
gl bir alternatif oluturmaktadr. sics of R(Windows), Research Data Servi-
ces, University of Pennsylvania 2-3(2008)
4. Kaynaklar:
[14] Venables W. N. , Smith D. M. , the R De-
[1] Braun W.J.,Murdoch D.J.,A first course in velopment Core Team, An Introduction to R,
statistical programming, Cambridge Univer- 2-6(2008)
sity Press, England, 1:13-175(2007)
[15] Wegman E. J. , Solka J. L., Statistical
[2] Crawley M. J. , The R Book, Wiley seri- Software for Today and Tomorrow, in Ency-
si, England, 9-97(2007) clopedia of Statistics, John Wiley, (2005)

297

You might also like