T.C. R PROGRAMLAMA VE BAZI R PAKET UYGULAMALARI ŞÜKRÜ ERGÜNTOP



Benzer belgeler
R ile Programlamaya Giriş ve Uygulamalar

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

adresinde görüldüğü üzere birçok ülkedeki kaynaktan indirme işlemi yapılabilir.

SPSS (Statistical Package for Social Sciences)

Algoritma ve Akış Diyagramları

MatLab. Mustafa Coşar

HSancak Nesne Tabanlı Programlama I Ders Notları

Probability Density Function (PDF, Sürekli fonksiyon)

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Bilgisayar Programlama MATLAB

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Adım Adım SPSS. 1- Data Girişi ve Düzenlemesi 2- Hızlı Menü. Y. Doç. Dr. İbrahim Turan Nisan 2011

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çok fazla bilgiden gizli kalmış örüntüleri ortaya çıkarma sürecine Veri Madenciliği denir.

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

Microsoft Excel. Çalışma Alanı. Hızlı Erişim Çubuğu Sekmeler Başlık Formül Çubuğu. Ad Kutusu. Sütunlar. Satırlar. Hücre. Kaydırma Çubukları

Öğr. Gör. Serkan AKSU 1

SQL (Structured Query Language)

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

PROGRAMLAMAYA GİRİŞ DERS 2

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Yukarıdaki program çalıştırıldığında aşağıdaki sonucu elde ederiz.

BİLGİSAYAR PROGRAMLAMA

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

SELÇUK ÜNİVERSİTESİ SEYDİŞEHİR MESLEK YÜKSEKOKULU BİLGİSAYAR TEKNOLOJİLERİ BÖLÜMÜ BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS DAĞILIM ÇİZELGESİ (2010)

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

FORMÜLLER VE FONKSİYONLAR

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

BİLGİSAYAR PROGRAMLAMA MATLAB

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

BEDEN EĞİTİMİ I: Haftalık ders 1 saattir (T-0 ) (U-l) (K-0).

1. LabVIEW ile Programlama

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

Sinirsel Benzetim ve NSL. İlker Kalaycı 06, 2008

Ekran Arayüzü ve Obje Seçimi (V )

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ

TANIMLAYICI İSTATİSTİKLER

EXCEL DE BENZETİM ÖRNEKLERİ BMÜ-422 BENZETİM VE MODELLEME

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Algoritma ve Akış Diyagramları

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

ÜNİTE 9 ÜNİTE 9 MICROSOFT EXCEL - II TEMEL BİLGİ TEKNOLOJİLERİ İÇİNDEKİLER HEDEFLER

1 NEDEN PROGRAMLAMA ÖĞRENMELIYIZ?

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

Veri Yapıları ve Algoritmalar

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

D.Saati AKTS Zorunlu Ders (Z) Meslek Dersi (M) Seçmeli Ders (S) TOPLAM

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Bölüm 10: PHP ile Veritabanı Uygulamaları

Excel' de formüller yazılırken iki farklı uygulama kullanılır. Bunlardan;

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Fonksiyonlar (Altprogram)

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

=A1+A2-A3, =A1*A2/A3,

3. Aşağıdakilerden hangisi B5 hücresinin değerini getirir (Kopyalar)? a-) =B5 b-) B5 c-) =B(5) d-) =5B

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI

DENEME SINAVI. ECDL BAŞLANGIÇ Hesap Tablosu

EMM3208 Optimizasyon Teknikleri

BÖLÜM 12 STUDENT T DAĞILIMI

Yrd. Doç. Dr. Caner ÖZCAN

1.1. Yazılım Geliştirme Süreci

Programlama Dillerinde Kullanılan Veri Tipleri

ALP OĞUZ ANADOLU LİSESİ EĞİTİM ÖĞRETİM YILI BİLGİSAYAR BİLİMİ DERSİ 2.DÖNEM 2.SINAV ÖNCESİ ÇALIŞMA SORULARI VE YANITLARI

TEMEL BİLGİTEKNOLOJİLERİ

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

İNTERNET PROGRAMCILIĞI - II

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

MONTE CARLO BENZETİMİ

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

Microsoft Excel 1.BÖLÜM

Php İle Mysql Veritabanından Bilgi Çekme

Pointer Kavramı. Veri Yapıları

Dersin Konusu ve Amaçları: Ders P lanı: Bölüm 1: Bilgi Teknolojilerinde Temel Kavramlar

Windows Sürüm 5.0 Standart Raporlarının NDER ile Bütünleşik Çalıştırılması

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

Temel Bilgi Teknolojileri - II Ayrıntılı Ders İçerikleri

Ders 8: Metotlar. barisgokce.com

Internet Programming II

Transkript:

T.C. BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ R PROGRAMLAMA VE BAZI R PAKET UYGULAMALARI ŞÜKRÜ ERGÜNTOP BİTİRME ÇALIŞMASI MAYIS-2015 BİLECİK

T.C. BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ R PROGRAMLAMA VE BAZI R PAKET UYGULAMALARI ŞÜKRÜ ERGÜNTOP BİTİRME ÇALIŞMASI MAYIS-2015 BİLECİK

BİLDİRİM Bu kitaptaki bütün bilgilerin etik davranış ve akademik kurallar çerçevesinde elde edildiğinive yazım kurallarına uygun olarak hazırlanan bu çalışmada bana ait olmayan her türlü ifade ve bilginin kaynağına eksiksiz atıf yapıldığını bildiririm. DECLARATION I hereby declare that all information in this document has been obtained and presented in accordance with academic rules and ethical conduct. I also declare that, as required by these rules and conduct, I have fully cited and referenced all materials and results that are not original to this work. İmza Öğrencinin Adı SOYADI tarih: ii

ÖZET BİTİRME ÇALIŞMASI R PROGRAMLAMA VE BAZI R PAKET UYGULAMALARI Şükrü ERGÜNTOP BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Danışman: Öğr. Gör. Murat ÖZALP 2015, 56 Sayfa Jüri Üyeleri İmza.............................................................................................................................. Bu çalışmada son yıllarda popüler olan R Programlama dili ve R Programlama Paket Uygulamaları Mevcuttur. Bu çalışma ile R programlama dilinin öğrenilmesi ve paketlerin kullanımı hakkında örnekler ile genel bilgi verilmiştir. :........................................................ Anahtar Kelimeler: R Programming, R Data Mining, R Neural Network, nnet, neuralnetwork, R Web Developer, Shiny, RWeka, R Datasets iii

ABSTRACT THESIS R PROGRAMMING AND SEVERAL APPLICATONS OF THE R PACKAGE Şükrü ERGÜNTOP BILECIK SHEIKH EDEBALI UNIVERSITY ENGINEERING FACULTY DEPARTMENT OF COMPUTER ENGINEERING Advisor: Öğr. Gör. Murat ÖZALP 2015, 56 Pages Jury Sign.......................................................................................................................................... In this study, R programming language popular in recent years and R Packages Application are available. This study aimed to learn the R programming language and general information are given about the use of R programming language packages Anahtar Kelimeler: R Programming, R Data Mining, R Neural Network, nnet, neuralnetwork, R Web Developer, Shiny, RWeka, R Datasets iv

ÖNSÖZ 3 bölümden meydana gelen bu kitabın birinci bölümünde yani giriş bölümünde, R programlama nın gelişimi kullanımına dair bilgiler, platformları, neden tercih edildiği, konusunda bilgiler verilmiştir İkinci bölümde R programlama dilinin yapısından, nasıl kullanıldığından, syntax ından bahsedilmiştir, 3. bölümde ise bazı R paketlerin nerelerde ve nasıl kullanıldığına dair birkaç uygulamalar gerçekleştirilmiştir. Bu projenin yazımının başından sonuna kadar emeği geçen ve beni bu konuya yönlendiren saygı değer hocam ve danışmanım Sayın Öğr. Gör. Murat ÖZALP a tüm katkılarından ve hiç eksiltmediği desteğinden dolayı teşekkür ederim. Şükrü ERGÜNTOP v

İçindekiler ÖNSÖZ v ŞEKİLLER TABLOSU ix 1 GİRİŞ 1 1.1 Projede Kullanılan Programlama Dili....................... 1 1.1.1 R Programlama ya Giriş......................... 1 1.1.2 R Programlama Dili Artıları ve Eksileri................. 1 1.1.3 R Grafik Kullanıcı Arayüzleri....................... 3 1.1.4 R Programlama Dili Özellikleri...................... 7 1.1.5 R programlama Paketleri......................... 7 2 R PROGRAMALAMA 8 2.1 Veri Tipleri..................................... 8 2.1.1 Diziler................................... 8 2.1.2 Matrix................................... 9 2.1.3 List.................................... 9 2.1.4 Veri Çerçevesi............................... 10 2.1.5 Vektörler.................................. 11 2.2 Döngüler, Koşullar ve Durumlar.......................... 11 2.2.1 For döngüsü................................ 11 2.2.2 İf-Else................................... 12 2.2.3 Repeat döngüsü.............................. 13 2.2.4 Which................................... 13 2.2.5 While................................... 14 2.3 Çizimler ve Grafikler................................ 14 2.3.1 Barplot ile Çubuk Grafik Çizimi..................... 14 2.3.2 Circle................................... 17 2.3.3 Plot.................................... 18 2.3.4 Plot PCH Sembol Tablosu........................ 21 2.3.5 Plot Renk Tablosu............................. 21 2.3.6 pie(pasta) Grafiği............................. 22 vi

2.3.7 Histogram................................. 23 2.3.8 Lines.................................... 23 2.4 Veri Okuma ve Yazma............................... 24 2.4.1 R Ortamına Excelden Veri Aktarma................... 24 2.4.2 R Ortamına txt den Veri Aktarma..................... 25 2.4.3 R Ortamında Veri Oluşturma....................... 25 2.4.4 R Ortamına Aktarılan Verileri Görüntüleme............... 26 2.5 Veri Yönetimi................................... 26 2.5.1 Hazır Fonksiyonlar............................ 26 2.5.2 Fonksiyon Oluşturma........................... 27 2.5.3 Özel Fonksiyonlar............................. 28 2.6 R Programlama Olasılık Dağılımları........................ 29 2.6.1 Binomal Dağılım............................. 29 2.6.2 Poission Dağılım............................. 30 2.6.3 Normal Dağılım.............................. 31 2.6.4 Sürekli Düzgün Dağılım......................... 32 2.6.5 Üssel Dağılım............................... 33 3 R PAKET UYGULAMALARI 34 3.1 Karekök Almayı Gerçekleştiren Yapay Sinir Ağı Oluştuma............ 34 3.1.1 Uygulamanın Amacı........................... 34 3.1.2 Uygulamanın İçeriği........................... 34 3.1.3 Ugulamanın Aşamaları.......................... 34 3.1.4 Ugulamanın R kodları........................... 35 3.1.5 Uygulamanın Sonucu........................... 36 3.2 İris Verisini sınıflandıran Yapay Sinir Ağı Oluştuma............... 36 3.2.1 Uygulamanın Amacı........................... 36 3.2.2 Uygulamanın İçeriği........................... 36 3.2.3 Ugulamanın Aşamaları.......................... 36 3.2.4 Ugulamanın R kodları........................... 36 3.2.5 Uygulamanın Sonucu........................... 38 3.3 Yapay Sinir Ağı ile "Dataset" paketindeki "infert" verisini sınıflandırma..... 38 3.3.1 Uygulamanın Amacı........................... 38 vii

3.3.2 Uygulamanın İçeriği........................... 38 3.3.3 Ugulamanın Aşamaları.......................... 38 3.3.4 Ugulamanın R kodları........................... 38 3.4 Yapay Sinir Ağı ile Kredi Derecelendirmesi Uygulaması............. 39 3.4.1 Uygulamanın Amacı........................... 39 3.4.2 Uygulamanın İçeriği........................... 40 3.4.3 Uygulamanın Aşamaları......................... 40 3.4.4 Ugulamanın R kodları........................... 40 3.5 Web Ortamında Dinamik Veri Analizi....................... 41 3.5.1 Uygulamanın Amacı........................... 41 3.5.2 Uygulamanın İçeriği........................... 42 3.5.3 Uygulama................................. 42 3.6 Yapay sinir Ağı ile Animasyon Örneği...................... 42 3.6.1 Uygulama................................. 42 ARAŞTIRMA BULGULARI VE TARTIŞMA 43 SONUÇLAR VE ÖNERİLER 44 KAYNAKLAR 45 ÖZGEÇMİŞ 46 viii

ŞEKİLLER TABLOSU 1 R ın kullanım istatistiği[4]............................. 2 2 R Console..................................... 3 3 R Comander kütüphanesi.............................. 3 4 R Comander Arayüzü............................... 4 5 R Comander Örnek Bir Uygulama......................... 5 6 R Studio Arayüzü................................. 6 7 Barplot ile çubuk grafik çizimi 1.......................... 15 8 Barplot ile çubuk grafik çizimi 2.......................... 15 9 Barplot ile çubuk grafik çizimi 3......................... 16 10 Barplot ile çubuk grafik çizimi 4......................... 16 11 Barplot ile çubuk grafik çizimi 5......................... 17 12 Circle çizimi 1................................... 17 13 Circle çizimi 2................................... 18 14 Plot çizimi 1.................................... 18 15 Plot çizimi 2.................................... 19 16 Plot çizimi 3.................................... 20 17 PCH Sembol Tablosu................................ 21 18 Renk Tablosu.................................... 21 19 pie grafiği 1..................................... 22 20 pie grafiği 2..................................... 22 21 pie 3D grafiği.................................... 23 22 Histogram grafiği 1................................. 23 23 line grafiği 1.................................... 24 24 line grafiği 2.................................... 24 25 Karekök Almayı Gerçekleştiren Yapay Sinir Ağı................. 35 26 İris Veri Sınıflandırmasını Gerçekleştiren Yapay Sinir Ağı............ 37 27 İris Veri Sınıflandırmasını Gerçekleştiren Yapay Sinir Ağının Testi........ 37 28 Infert Verisi Sınıladıran Yapay Sinir Ağı Modeli................. 39 29 Kredi Derecelendirme Gerçekleştiren Yapay Sinir Ağı.............. 41 30 Shiny Paket Uygulması............................... 42 31 nnet ve animation Paket Uygulması........................ 42 ix

1 GİRİŞ 1.1 Projede Kullanılan Programlama Dili 1.1.1 R Programlama ya Giriş Tanım :R istatistiksel hesaplama ve grafik sistemidir. R hem bir programlama hemde yüksek seviyeli grafik dilidir, diğer diller için arayüz ve hata ayıklama olanaklarını sağlar[1] R dili Yeni Zelanda daki Aucland Üniversitesi İstatistik Bölümü nden Ross Ihaka ve Robert Gentleman tarafından yazılmıştır. Dünyanın çeşitli yerlerindeki araştırmacılar R yi geliştirmek için bir araya gelmiş ve 1997 de bu gruba "R core team" adı verilmiştir. R dilinin ilk sürümü "R core team" tarafından 29 Şubat 2000 tarihinde yayınlanmıştır. R istatistiksel yazılım geliştirme ortamı veri manipülasyonu, hesaplama ve grafik gösterim için tasarlanmıştır. R dilinin söz dizimi kuralları (syntax) C diline benzerlik gösterir. Fonksiyonel bir programlama dili olan R istatistikçiler ve matematikçiler için kod yazmayı kolaylaştıran fonksiyonlara sahiptir.[2] 1.1.2 R Programlama Dili Artıları ve Eksileri Artıları[3] R açık kaynak kodlu GNU lisansı olan bir yazılım Hızlı ve ücretsiz İşletim sisteminden bağımsız olarak çalışır. 1

R en kapsamlı istatiksel analiz paketidir. Standart istatistiksel testler, modellerin hepsini içerir ve analizlerin yanı sıra, verileri yönetmek ve işlemek için kapsamlı bir dil sağlamıştır. Yeni teknoloji ve fikirler R ortamından erişim sağlanabilir. R ekonometri, veri madenciliği, mekansal analiz, ve biyo-bilişim gibi konularda uzmanlaşmış, birçok kaynaktan temin edebileceğiniz 15,000 in üstünde paket vardır. 32 ve 64 bit işlemci üzerinde çalışan, GNU / Linux, Macintosh ve Microsoft Windows üzerinde çalışabilir. R Microsoft Excel, Microsoft Access, Oracle, MySQL ve SQLite, Hadoop, SAS ve SPSS gibi birçok araçlar ile bağlantı kurularak data import- export işlemleri gerçekleştirebilir. Ayrıca PDF, JPG, PNG ve SVG formatlarında ve LATEX ve HTML için tablo ve grafik çıktısı alabilirsiniz. Eksileri[3] Öğrenme süreci uzundur. Kullanıcı dostu değildir.(arayüz Bakımından) Veriyi işlenecek hale getirmek zaman alıcı ve hataya açık bir süreçtir. Tüm işlemler hafızada gerçekleştirilir. Bu demek oluyor ki çok büyük veri için fazla ram gerekir Şekil 1: R ın kullanım istatistiği[4] 2

1.1.3 R Grafik Kullanıcı Arayüzleri R Terminali: R da komutların derlendiği terminaldir. Komutlar buraya yazıldıktan sonra R terminali kapatılırsa komutlar yok olur. Bu sorunu çözmek için "Dosya" menüsünden yeni betik oluşturulur. R termimali kullanıcı dostu bir arayüz değildir. Her işlemi komutlarla yapılmaktadır Şekil 2: R Console R Comander: tcltk tabanlı GUI dir R terminelinden "paketler" menüsünden "Rcmdr" paketi kurulur kurulduktan sonra R terminaline "library(rcmdr)" yazılarak arayüz başlatılır Şekil 3: R Comander kütüphanesi R termimale "library(rcmdr)" yazıldıktan sonra şekil 4 teki arayüz oluşmaktadır 3

Şekil 4: R Comander Arayüzü R Comander şekil 5 de görüldüğü gibi 3 bölümden oluşmaktadır 1. bölüm input, veri değerlerimizi girdiğimiz bölüm 2. bölüm output, verilerimizin sonuçlarını elde ettiğimiz bölüm ve son olarak 3.bölüm message,kodlarımızı derlediğimizde hata veya uyarının gösterildiği bölüm şekil 5 de R Comander arayüzü üzerinde bir değişkene vektör atanması ve bu değişkendeki vektör değerlerini gösterilmesi ile ilgili bir örnek uygulama gerçekleştirilmiştir 4

Şekil 5: R Comander Örnek Bir Uygulama Şekil 5 de gösterilen "submit" butonu eğer input bölümünden herhangi bir satır seçilmeden basılırsa her zaman input bölümünün son satırını derler R Studio: Kullanımı oldukça kolay ve gelişmiş bir arayüz 5

Şekil 6: R Studio Arayüzü Şekilde 6 da görüldüğü gibi R Studio 4 bölümden meydana gelmektedir. Öncelikle R kodlarının yazıldığı R scriptten bahsedilecek olunursa, "File" menüsünün altında bulunan "New File" sekmesindeki "R Scipt" sekmesi seçilerek oluşturulur, R Comander aratüzündeki gibi yine kodların derlendiği R Console bölümü, R scripte yazılan değişkenlerin gösterildiği bölüm ve son olarak R scripte yazılan grafiksel kodların, grafiklerinin gösterildiği bölüm bulunmaktadır. R scipteki kodlar diğer arayüzler gibi kodlar derlendiğinde eğer bir satır seçilmişse o satırı derler herhangi bir satır seçilmemiş ise son satırı varsayılan olarak derler. 6

1.1.4 R Programlama Dili Özellikleri Etkin bir veri işleme ve depolama[5] Dizi ve matris hesaplamaları için komutlar grubu[5] Veri analizi için ileri düzeyli teknikler topluluğu[5] Verinin ekranda ya da basılı bir eserde görüntülenebilmesine olanak veren geniş grafiksel özellikler[5] Kolay programlamaya uygun fakat karmaşık programlama dillerinin özelliklerin[5] sahip bir programlama dili olanaklarını sunmaktadır[5] Veri analizi için kullanılabilecek uyumlu ve bir arada kullanılabilen araçlar içerir.[4] Besne yönelimli bir programlama dili olması 2-D, 3-D gelişmiş grafik araçlarına sahip olması 1.1.5 R programlama Paketleri R fonskiyonları ayrı ayrı paketler içine aktarılmıştır, böylece gerekli paketlerle çalışarak daha az bellek kullanımı ve hızlı işlem gücü sağlanır. Bu paketlerin bir başka avantajı da yazılan fonksiyonlardan oluşan paketlerin R web sitesinden temin edilerek yüklenebilmesidir[2] "Install.package() ve update.package() fonksiyonları R komut satırından istenilen paketin indirilmesi ve yüklenmesi için kullanılırlar.[2] Paketlere ait fonksiyonlar kullanılacağı zaman paket çağrılmalıdır paketlerin çağrılma komutu "library(paket_isimi)" şeklindedir 7

2 R PROGRAMALAMA 2.1 Veri Tipleri 2.1.1 Diziler Dizler çok boyutlara sahip veri tipidir. array() fonksiyonu dizileri test eder veya oluşturur. dim() fonksiyonu dizinin boyutunu tanımlar Örnek 1 x < array(1 : 9) : 1 den 9 a kadar bir dizi oluşturur x : diziyi gösteren komut [1] 1 2 3 4 5 6 7 8 9 : Dizinin konsoldan görünümü Örnek 2 x < array(1 : 9, c(3,3)) : 1 den 9 a kadar 3x3 lük bir dizi oluşturur x : Diziyi gösteren komut Örnek 3 x < 1 : 64 : x değişkenine 1 den 64 e kadar bir vektör atandı dim(x) < c(2,4,8) : vektörü diziye dönüştürür, 2x4 lük 8 tane dizi oluşturulur burda dikkat edilmesi gereken 2x4x8=64 olması yoksa boyut hatası verir is.array(x) : x adında bir dizi olup olmadığını sorgular x : Diziyi gösteren komut 8

2.1.2 Matrix Matrix 2 boyutlu dizilerdir. R, matrix i çok uygun ele almanzı sağlayan çok fazla opratör ve fonksiyona sahiptir Örnek 1 A < matrix(c(3,5,7,1,9,4),nrow = 3,ncol = 2) : vektörü 3x2 lik bir matrix e dönüştürür A Matrixi gösterem komut Örnek 2 ra < nrow(a) : A matrix in sütun sayısını ra değişkenine atıyor ra : Sütun sayısını gösterir ca < ncol(a) : A matrix in kolon sayısını ra değişkenine atıyor ca : Kolon sayısını gösterir Örnek 3 B < t(a) : A matrix inin transpozunu B değişkenine atar B : A matrix inin transpozunu gösterir Örnek 4 C < A A : matrix çarpımı(bölme /, çıkarma -, toplama + operatörleri ile yapılır) C : çarpım sonucun gösterir 2.1.3 List R da list veri türü,elemanlarının sıralı koleksiyon içeren bir nesneye karşılık gelir. Öğeleri farklı modu veya tipte olabilir. Örnek 1 9

x < list(sayi = 3,yazi = LungCancerPatients,har f = c( A, B, C )) : Sayi,yazi ve karakter içeren bir liste oluşturur x : Listeyi gösterir is.list(x) : x değişkeni adında bir liste olup olmadığını sorgular Örnek 2 x[[1]] : x listesinin 1. elemanını getiri yani sayıyı(3) x[[2]] : x listesinin 2. elemanını getirir yani yazi(lung Cancer Patients) x[[3]] : x listesinin 3. elemanını getirir yani harf(a,b,c) x[[3]][2]: x listesinin 3. elemanının kendi içinde 2. elemanını getirir yani B x$har f : x listesindeki harf i getirir yani A,B,C x[[ har f ]] : x listesindeki harf i getirir yani A,B,C length(x) : Listenin uzunluğunu belirler as.data. f rame(x) x listesinin başlık başlık düzgün sıralanmasını sağlar 2.1.4 Veri Çerçevesi R da data.frame çok güçlü bir veri tipidir, Özellikle bir taplo işlendiği zaman. Tabloya göre sütun ve satır olarak veriyi depolar. Örnekte R da veri kümesi olan BOD(Biyo kimyasal oksijen ihtiyacı) verisini kullanalım. BOD bir veriçerçevesidir Örnek x < BOD : veri kümesini x değişkenine atandı. is.data. f rame(x) : x in bir veri çerçevesiolup olmadığı kontrol ediliyor class(x) : x verisi sınıflandırılıyor x[2,] : x verisinin 2. satırı ve 2. satırdaki tüm sütunlar 10

x$time : x verisindeki "Time" değerlerini yazdırır x$demand x verisindeki "demand" değerlerini yazdırır 2.1.5 Vektörler R programlama dilinde vektör diğer programlama dillerinin dizilerine benzer.elemanları sıralı bir sayıda oluşturuyor. Elemanlar numerik, lojik, karakter ve karmaşık olabilir v < c(2, 3, 5.5, 7.1, 2.1, 3) : Bir vektör tanımlar assign( v, c(2, 3, 5.5, 7.1, 2.1, 3)) : yukardaki maddeyle aynı, vektör tanımlamanın diğer bir yöntemi v < 1 : 10 : 1 den 10 a kadar bir vektör dizisi oluşturur v < rep(2,10) : 10 tane 2 den oluşan bir vektör dizisi tanımlar v < seq(1,5,by = 0.5) : 1 den başkayarak 5 e kadar 0.5 artan bir vektör tanımlar v < seq(length = 10, f rom = 1,by = 0.5) : 1 den başlayarak uzunluğu 10 olana kadar 0.5 artan bir vektör tanımlar 2.2 Döngüler, Koşullar ve Durumlar 2.2.1 For döngüsü veri < c(rep(1 : 10)) : 1 den 10 a kadar sayı içeren bir vektör tanımlar f or(ornek in veri) { print(ornek) } Açıklama:for döngüsü ile veri vektörü içindeki değerleri tek tek gösterir 11

f or(ornek in veri) { str < paste(ornek,,veri mevcut,sep = ) print(str) } Açıklama:Vektör değerlerini bir string ile birletirerek ekrana tek tek basar f or(ornek in veri) { i f (ornek == 3)break str < paste(ornek,,veri mevcut,sep = ) print(str) } Açıklama:Vektör değeri 3 olduğunda döngüden çıkar f or(ornek in veri) { i f (ornek%%2 == 0)next str < paste(ornek,,veri mevcut,sep = ) print(str) } Açıklama:Vektör değeri 2 ye tam bölünmeyenleri yazdırır son < length(veri) baslangic < son 2 f or(ornek in baslangic : son) str < paste(ornek,,veri mevcut,sep = ) print(str) Açıklama: vektörün son üç değerini yazdırır 2.2.2 İf-Else veri < c(rep(1 : 10)) : 1 den 10 a kadar sayı içeren bir vektör tanımlar f or(ornek in veri) 12

{ i f (ornek%%2! = 0)next else print(ornek) print(ornek) } Açıklama: 2 ile kalansız bölünmeyenler yazdırır i f else(veri > 6,2,1) : Veri 6 dan büyükse ekrana 2 yazdır 6 dan küçükse 1 yazdırır 2.2.3 Repeat döngüsü Repeat "while" ve "for" döngüsüne benzerdir, bir komut bloğunu sona erene kadar yürütür toplam < 0 repeat{toplam < toplam + 1; print(toplam); i f (toplam > 6)break;} Açıklama: toplam değişkeni 6 dan büyük olana kadar döngü devam eder ve toplam değişkeni 1 er 1 er artar 2.2.4 Which Which() fonksiyonu mantıksal bir nesnenin "TRUE"indexini verir,dizi indeksine izin verir which(letters == h ) : h harfinin alfabedeki sırasını verir which(bod$demand == 16) : BOD verisindeki demand değeri 16 ya eşit olan karşılığını verir x < matrix(1 : 9,3,3) : 3x3 lük 1 den 9 a kadar bir matrix tanımlar which(x%%3 == 0, arr.ind = T RUE): x matrix inden 3 e tam bölünenlerin satır ve sütun numaralarını gösterir which(x%%3 == 0,arr.ind = FALSE) : x matrix inden 3 e tam bölünenleri gösterir 13

2.2.5 While While() döngüsü şartlar yerine getirilene kadar komutlar bloğunu çalıştırır x < 1 while(x < 5) { x < x + 1; print(x); } Açıklama: x, 5 ten küçük olduğu sürece 1 er 1 er artırılarak ekrana yazdırılır while(x < 5) { x < x + 1; i f (x == 3)break; print(x);} : x, 3 e eşit olduğunda döngüden çıkar while(x < 5) { x < x + 1; i f (x == 3)next; print(x); } Açıklama: x, 3 e eşit olduğunda bir bir sonraki değere gitmesini ifade eder 2.3 Çizimler ve Grafikler 2.3.1 Barplot ile Çubuk Grafik Çizimi x < c(3,2,6,8,4) barplot(x) Açıklama: x vektöründeki değerleri bir çubuk grafiği ile gösterir. 14

Şekil 7: Barplot ile çubuk grafik çizimi 1 Biraz açıklamalı çubuk grafiği çizelim barplot(x,border = tan2,names.arg = c( Jan, Feb, Mar, Apr, May ),+xlab = Month,ylab = Revenue,density = c(0,5,20,50,100)) Şekil 8: Barplot ile çubuk grafik çizimi 2 Açıklamalar - x, eldeki verilerimiz yani y eksenine karşılık gelen değerlerimiz - border, çubukların kenar kalınlığını belirler - names.arg, y eksenindeki verilerin x eksenindeki isimleri temsil eder - xlab, x eksenin genel adını temsil eder - ylab, y eksenin genel adını temsil eder - density, çubukların yoğunluklarını ayarlar kodlar 15

* A < matrix(c(3,5,7,1,9,4,6,5,2,12,2,1,7,6,8),nrow = 3,ncol = 5,byrow = T RUE) Açıklama:3x5 lik bir matrix oluşturur, "byrow=true" anlamı, matrixin dizilişini belirler yani matrix 3,5,7,1... diye sıralanır eğer FALSE olsaydı 3,1,5.. diye sıralanırdı * barplot(a,main = totalrevenue,names.arg = c( Jan, Feb, Mar, Apr, May ), xlab = month, ylab = revenue, col = c( tan2, blue, darkslategray3 )) Açıklama: "A" tanımladığımız matrix, "main" ana başığımız, "names.arg", "xlab", "ylab", yukarda açıklanmıştı. "col", matix imiz 3x5 lik olduğundan her bir çubuk 3 değeri temsil eder o yüzden 3 farklı renk tanımlanmıştır. Eğer "beside=true" parametresi yazılsaydı 3 renk aynı çubuk olmak yerine yan yana oluşurdu Şekil 10 de görüldüğü gibi, yazılmadığı için şekil 9 oluşmaktadır Şekil 9: Barplot ile çubuk grafik çizimi 3 Şekil 10: Barplot ile çubuk grafik çizimi 4 * legend(x = 0.2,y = 24,c( so ft, hardware, service ),cex =.8, col = c( tan2, blue, darkslategray3 ), pch = c(22,0,0)) Açıklama:legend() fonskiyonu bar çubuk grafinde, koordinatları belirlenen bir yere 16

bar çubuk grafiğindeki veriler hakkında detaylı bir şekilde kare içine açıklamalar yazar.legend fonksiyonundaki parametreler; "x",ve "y" parametreleri açıklamanın yazılacağı koordinatı belirler, c() verilerin neyi temsil ettiği yazılır, "col" açıklamaların sol tarafındaki şekillerin rengini belirler, "pch" verilerin sol tarafına nasıl bir şekil yazılacağını belirler, "cex" verileri açıklayan karenin büyüklüğünü belirler Şekil 11: Barplot ile çubuk grafik çizimi 5 2.3.2 Circle draw.circle() fonksiyonu ile bir alan üzerinde çember çizer. Bu fonksiyonu çalıştırmak için öncelikle "plotrix" paketi(install.packages("plotrix")) yüklenmiş olması lazım Aşağıdaki örnekler daha önce kullandığımız "BOD" verilerini kullanacağız plot(bod) Şekil 12: Circle çizimi 1 require(plotrix) : Gerekli paket çağrılır 17

draw.circle(4, 14, 2, border = blue, col = tan2 ) : "(4,14,2)" ile çember boyutu belirlenir, "border="blue"" ile çemberin kenar rengin, belirler, "col="tan2"" ile çemberin iç rengi belirlenir Şekil 13: Circle çizimi 2 2.3.3 Plot plot(), genel x,y çizim fonksiyonudur Öncelikle basit bir çizim yapalım x < c(1.2,3.4,1.3, 2.1,5.6,2.3,3.2,2.4,2.1,1.8,1.7,2.2) y < c(2.4,5.7,2.0, 3,13,5,6.2,4.8,4.2,3.5,3.7,5.2) plot(x, y) Şekil 14: Plot çizimi 1 Açıklama: Yukarda tanımlanmış x ve y koordinat değerleri, plot fonksiyonu ile çizimi yapılır 18

x < c( 2, 0.3,1.4,2.4,4.5) y < c(5, 0.5,8,2,11) plot(x, y, type = l, col = blue, xlab = AdvertiseChange, ylab = RevenueChange, main = FinancialAnalysis ) Açıklama:Burda diğer parametrelerden farklı olarak "type" parametresi bulunmakta bu parametre tipi "l(line)" olursa çizgi şeklinde aşağıda gösterildiği gibi olur, "p" olursa x in y e karşılık gelen noktası çember şeklinde gösterilir, "b" olursa "l" ve "p" parametresinin bileşimi olur, "s" olursa kare dalga şeklinde olur ve son olarak "h" olursa çizgi halinde histogram oluşur Şekil 15: Plot çizimi 2 abline(v = 0, col = red ) : abline() fonskiyonu daha önce çizilmiş bir plot yoksa çalışmaz, (0,0) noktasına çizgiyi y eksenine paralel çizer points(c(1,4),c(9,2), pch = 3,col = tan2 ) :1,4 ve 9,2 noktalarına +(pch=3) işareti koyar, "col(tan2)" noktaların tranparantlığını ayarlar x2 < c( 1.5,1,4) y2 < c(3,2,8) x2, ve y2 yukarda tanımlı olan x ve y noktaları gibi tanımlanır lines(x2,y2,col = darkolivegreen3 ) : nokların kesişim yerlerini yeşil çizgi ile birleştirir legend(x = 2.2,y = 11,c( advertise, sale ),cex =.8, col = c( blue, darkolivegreen3 ), lty = c(1, 1)) legen() fonksiyonu ile açıklamaları yazar legend() fonksiyonu parametreleri daha önce anlatılmıştı 19

Şekil 16: Plot çizimi 3 20

2.3.4 Plot PCH Sembol Tablosu Aşağıdaki tablo, R da çizimde kullanılan PCH semboller tablosu gösterilmektedir. PCH aynı zamanda karakter de olabilir Şekil 17: PCH Sembol Tablosu 2.3.5 Plot Renk Tablosu R da 657 tane yerleşik renk adı var. "colors()" fonksiyonu tüm rengleri gösterir Şekil 18: Renk Tablosu 21

2.3.6 pie(pasta) Grafiği Pie() işlevi bir pasta grafiği çizer x < c(3,2,6,8,4) Pie(x) Açıklama: x vektörünün uzunluğu, 5 olduğundan pasta 5 parçaya bölünür ve sırasıyla 1. parça=3, 2. parça=2, 3. parça=6, 4. parça=8, 5. parça=4 olduğunu ifade eder Şekil 19: pie grafiği 1 pieplot(x,labels = c( Jan, Feb, Mar, Apr, May ),xlab = Month,ylab = Revenue,col = c( tan2, darkslategray3, blue, red, green ), density = c(0,5,20,50,100),main = So ftrevenue ) Şekil 20: pie grafiği 2 library(plotrix) parca <- c(10, 12, 4, 16, 8) baslik <- c("us", "UK", "Australia", "Germany", "France") pie3d(parca,labels=baslik,explode=0.1, main="pie Chart of Countries ") 22

Şekil 21: pie 3D grafiği 2.3.7 Histogram x < c(10,12,4,16,8) hist(x) Şekil 22: Histogram grafiği 1 2.3.8 Lines abline() fonksiyonu bir plot çizgi ekler. x < c(1.2,3.4,1.3, 2.1,5.6,2.3,3.2,2.4,2.1,1.8,1.7,2.2) y < c(2.4,5.7,2.0, 3,13,5,6.2,4.8,4.2,3.5,3.7,5.2) plot(x,y,cex =.8, pch = 1,xlab = x,ylab = y,col = black ) x2 < c(4.1,1.1, 2.3, 0.2, 1.2,2.3) y2 < c(2.3,4.2,1.2,2.1, 2,4.3) points(x2,y2,cex =.8, pch = 3,col = blue ) 23

Şekil 23: line grafiği 1 abline(h = 4,col = red ) abline(v = 0,col = green ) abline(a = 2,b = 2,col = blue ) Şekil 24: line grafiği 2 2.4 Veri Okuma ve Yazma 2.4.1 R Ortamına Excelden Veri Aktarma getwd() : Veri okumadan önce R da bulunduğumz konumu gösterir setwd() : Veriyi okumamız için bulunduğumuz konumu verinin bulunduğu konuma ayarlar list. f iles() : Ayarladıpımız konumdaki tüm dosyaları gösterir veri < read.csv( data.csv,header = T RUE ) : "data.csv" dosyası R ortamına aktarır veri : "data.csv" dosyası içindeki verileri ekrana bastırır names(veri) : "data.csv" dosyası içindeki değişken isimlerini gösterir 24

veri$degisken i simi : "data.csv" dosyası içindeki belirlenem değişkenin değerlerini gösterir mean(veri$degisken i simi) : "data.csv" dosyası içindeki belirlenen değişkenin değerlerinin ortalamasını alır 2.4.2 R Ortamına txt den Veri Aktarma getwd() : Veri okumadan önce R da bulunduğumz konumu gösterir setwd() : Veriyi okumamız için bulunduğumuz konumu verinin bulunduğu konuma ayarlar list. f iles() : Ayarladıpımız konumdaki tüm dosyaları gösterir veri < read.table( t p.txt, header = T ); : "tp.txt" dosyası R ortamına aktarır veri : "tp.txt" dosyası içindeki verileri ekrana bastırır names(veri) : "tp.txt" dosyası içindeki değişken isimlerini gösterir veri$degisken i simi : "tp.txt" dosyası içindeki belirlenem değişkenin değerlerini gösterir mean(veri$degisken i simi) : "tp.txt" dosyası içindeki belirlenen değişkenin değerlerinin ortalamasını alır ncol(veri) : Verinin sütun sayısını gösterir item nrow(veri) : Verinin satır sayısını gösterir 2.4.3 R Ortamında Veri Oluşturma gender < c( male, f emale, male ) weight < c(160, 110, 220) mydata < data. f rame(age, gender, weight) mydata 25

2.4.4 R Ortamına Aktarılan Verileri Görüntüleme ls() : R ortamından tanımlanan veri değşkenlerini gösterir names(mydata) : Verideki başlıkları görüntüler str(mydata) : Veriyi yapısal olarak listeler levels(mydata$gender) : Veri faktörünün seviyelerini listeler yaniyukarda tanımladığımız verinin "gender" faktör seviyeleri "male" ve "female" dir head(mydata,n = 10) : Verinin ilk "o tanesini gösterir tail(mydata,n = 5) : Verinin son 5 tanesini gösterir 2.5 Veri Yönetimi 2.5.1 Hazır Fonksiyonlar 1. Numerik Fonksiyonlar Fonksyion abs(x) sqrt(x) ceiling(x) floor(x) round(x, digits=n) cos(x), sin(x), tan(x) log(x) Tanımı x verisinin mutlak değerini alır x verisinin kare kökünü alır x verisini bi üste yuvarlar x verisinin bi alta yuvarlar x verisinin yuvarlar ve n tane basamağını görüntüler x verisinin trigonometrik hesaplarını görüntüler x verisinin logaritmasını görüntüler 2. Karakter Fonksiyonlar 26

Fonksyion substr(x, start=n1, stop=n2) sub("x",replacement,y) strsplit(x, "") toupper(x) tolower(x) Tanımı x stringinin n1. karakterinden başlayarak n2. karakterine kadar olan kısmı görüntüler y stringinde bulunan x stringini replacement stringi ile yer değiştirir x stringindeki karakterleri çift tırnak içine alarak ayırır x stringindeki karakterleri hepsini büyük yapar x stringindeki karakterleri hepsini küçük yapar 2.5.2 Fonksiyon Oluşturma my f unction < f unction(arg1,arg2,...) { statements return(ob ject) } Örnek 1 topla = f unction(a,b) { c = a + b return(c) } Kullanımı topla(5, 9) Örnek 2 hesap = f unction(a,b) { c = a + b d = a b cat( c =,c, d =,d) return(list(toplam = c, f ark = d)) 27

} Kullanımı hesap(8, 5) Açıklama: cat() fonskiyonu veriyi ekranda göstermeye yarar 2.5.3 Özel Fonksiyonlar cbind() Fonksiyonu cbind() fonksiyonu sütunlar ile vektör, matriks veya veri çerçevesini, birleştirir x < read.csv( data1.csv,header = T,sep =, ) x2 < read.csv( data2.csv,header = T,sep =, ) x3 < cbind(x,x2) x3 rbind() Fonksiyonu rbind() fonksiyonu satırlar ile vektör, matriks veya veri çerçevesini, birleştirir 28

x < read.csv( data1.csv,header = T,sep =, ) x2 < read.csv( data2.csv,header = T,sep =, ) x3 < rbind(x,x2) x3 2.6 R Programlama Olasılık Dağılımları 2.6.1 Binomal Dağılım Binomal dağılım, ayrık olasılık dağılımıdır. Bir deneyde n tane bağımsız çalışmaların sonucunu açıklar. Her denemenin sadece iki sonuca sahip olduğu varsayılır, ya başarılı yada başarısız. Eğer başarılı deneme olasılığı p ise o zaman n tane bağımsız denemeli bir deneyde x başarılı sonuçlara sahip olasılık aşağıdaki gibidir Problem f (x) = ( ) n p x (1 p) (n x) where x = 0,1,2,...n x 29

Bir ingilizce sınavında 12 tane çoktan seçmeli sorular olduğunu varsayalım. Her bir soru için olası beş cevap vardır ve onlardan sadece biri doğrudur. Eğer bir öğrenci rastgele her sorunun cevabını bulmaya çalışırsa, dört yada daha az doğru cevaplama olasılığını bulalım Çözüm Beş olası cevap üzerinden sadece biri doğru olduğundan, bir sorunun cevabını rastgele olarak doğru olma olasılığı 1/5=0.2 dir. Aşağıdaki gibi rastgele olarak tam 4 soruyu cevaplama olasılığını bulabiliriz dbinom(4,size = 12, prob = 0.2) 4 veya daha az soruları cevaplama olasılığını bulmak için dbinom fonsiyonuna x=0,..4 uygulanır dbinom(0,size = 12, prob = 0.2) + +dbinom(1,size = 12, prob = 0.2)+ +dbinom(2,size = 12, prob = 0.2)+ +dbinom(3,size = 12, prob = 0.2)+ +dbinom(4,size = 12, prob = 0.2) Alternatif olarak toplu olasılık fonksiyonu için "pbinom" binomal dağılım kullanılabilir pbinom(4,size = 12, prob = 0.2) 2.6.2 Poission Dağılım Poisson dağılımı bir aralıkta, bağımsız olay oluşumlarının olasılık dağılımıdır. Eğer λ aralıklar itibariyle ortalama ise, o zaman verilen aralık içinde x oluşumlara sahip olasılık: f (x) = λ x e x x! where x = 0,1,2,3.. Problem 30

Eğer ortalama köprüde dakikada 12 araba varsa, Belirli bir dakika içinde köprüde 17 veya daha fazla araba olma olasılığını bulun Çözüm Belirli bir dakika içinde köprüde 17 veya daha az araba olma olasılığı, "ppois" ile verilir ppois(16, lambda = 12) : lower tail Dolayısıyla bir dakika içinde köprü, 17 veya daha fazla araba geçişine sahip olma olasılığı, olası yoğunluk fonksiyonun üst kısmıdır ppois(16,lambda = 12,lower = FALSE) : U p tail 2.6.3 Normal Dağılım Normal dağılım, aşağıdaki olasılık yoğunluk fonksiyonu ile tanımlanır, burda µ, populasyon ortalaması,σ 2 ise varyanstır f (x) = 1 σ 2n e (x m)2 /2σ 2 Eğer rastgele bir x değişkenini, normal dağılım takip ediyorsa, o zaman aşağıdaki yazılır X N(µ,σ 2 ) Özellikle, µ=0 ve σ =1 ise normal dağılım, standart normal dağılım olarak ve N(0,1) olarak ifade edilir Merkez limit teoremi nedeniyle, normal dağılım önemlidir. n sonsuza yaklaştığı zaman ortalama µ ve σ 2 /n ile normal dağılıma yaklaşır. ortalama µ ve σ 2 ile bir populasyondan n boyutunda olası tüm örneklerin populasyonunu ifade eder Problem 31

Bir üniversite giriş sınavı test puanları normal dağılıma uygun olduğunu varsayalım. Ayrıca, ortalama test puanı 72 ve standart sapması 15.2 dir. sınavda 84 yada daha fazla alan öğrencilerin yüzdesi kaçtır Çözüm Ortalama 72 ve standart sapma 15.2 ie normal dağılımın "pnorm" fonksiyonu uygulanır. Çünkü 84 ten daha yüksek alan öğrencilerin yüzdesi istenmekte. Normal dağılım üst kuyruğuna bakılır pnorm(84,mean = 72,sd = 15.2,lower.tail = FALSE) 2.6.4 Sürekli Düzgün Dağılım Sürekli düzgün dağılım, a ve b arasında sürekli aralıktan, rastgele sayı seçiminin olasılık dağılımdır. Yoğunluk fonksiyonu aşağıdaki fonksiyonla tanımlanır 1 b a when a x b f (x) = 0 whenx < a or x > b Problem 1 ve 3 arasında rastgele 10 tane sayı seçin Çözüm 1 ve 3 arasında 10 tane rastgele sayı üretmek için sürekli dağılımın üretim fonksiyonu runif i uygulanır 32

runi f (10,min = 1,max = 3) 2.6.5 Üssel Dağılım Üssel dağılım, rastgele olarak yenilenen bağımsız olay dizisinin varış zamanını tanımlar Eğer µ bir sonraki olay tekrarında ortalama bekleme süresi ise, olası yoğunluk fonksiyonu: f (x) = 1 µ e x/µ when x 0 0 when x < 0 Problem Bir süpermarket kasiyerin ortalama ödeme süresi 3 dakika olduğunu varsayalım. Bir müşterinin ödeme olasılığını 2 dakikadan daha az sürede kasiyer tarafından tamamlanmasını bulun Çözüm Ödeme işlemi oranı, ortalama ödeme tamamlanma süresinin bölü birine eşittir. Dolayısıyla işlem hızı dakikada 1/3 tür. Daha sonra, 1/3 oran ile üssel dağılımın "pexp" fonksiyonu ile hesaplanır pexp(2, rate = 1/3) 33

3 R PAKET UYGULAMALARI 3.1 Karekök Almayı Gerçekleştiren Yapay Sinir Ağı Oluştuma 3.1.1 Uygulamanın Amacı Bu uygulamada, bir sayı alabilen ve karakökünü(mümkün olduğunca yakın) hesaplayabilen bir yapay ağ oluşturacağız. 3.1.2 Uygulamanın İçeriği Yapay sinir ağımız tek bir giriş alacak,(karakökünü almasını istediğimiz bir sayı) ve tek bir çıkış üretecek(girişin karakökü). Yapay sinir ağı, kendiğini eğitmek için 10 tane gizli nöron içermektedir 3.1.3 Ugulamanın Aşamaları 1. Yapay sinir ağı oluşturmak için R a "neuralnet" paketinin yüklenmesi ve kullanmak için "neuralnet" paketinin eklenmesi 2. 0 ve 100 arasında eşit olarak dağıtılan 50 tane rastgele sayı üretmek 3. Üretilen sayıları dataframe olarak tutulması 4. Üretilen sayıların karakökünü tutan bir vektör tanımlamak 5. Sütunlar ile veriyi birleştirip bir değişkene atama 6. Verilerin bulunduğu sütunlara isim verme 7. Net hesabı 8. Sonuçları yazdırma 9. Yapay ağımızı çizme 10. Test verisi oluşturma 34

11. Test verisinin sonuçlarını hesaplama 3.1.4 Ugulamanın R kodları install.packages( neuralnet ) library( neuralnet ) egitim_girileri < as.data. f rame(runi f (50,min = 0,max = 100)) egitim_cikisleri < sqrt(egitim_girileri) egitim_verisi < cbind(egitim_girileri, egitim_cikisleri) colnames(egitim_verisi) < c( Giris, Cikis ) net.sqrt < neuralnet(cikis Giris, egitim_verisi, hidden = 10, threshold = 0.01) print(net.sqrt) plot(net.sqrt) Şekil 25: Karekök Almayı Gerçekleştiren Yapay Sinir Ağı test_verisi < as.data. f rame((1 : 10) 2 ) net.results < compute(net.sqrt, test_verisi) ls(net.results) yeni_cikislar < cbind(egitim_verisi, sqrt(egitim_verisi), as.data. f rame(net.results$net.result)) colnames(yeni_cikislar) < c( Girisler, BeklenenCikisler, AginCikislarß ) print(yeni_cikislar) 35

3.1.5 Uygulamanın Sonucu Bu uygulamada oluşturulan ağ, eğitim verileri(eğitim girişi ve eğitim çıkışı) ile eğitilerek bir sayının kareköküne en yakın değerlerine ulaşılması sağlandı 3.2 İris Verisini sınıflandıran Yapay Sinir Ağı Oluştuma 3.2.1 Uygulamanın Amacı Bu uygulamada, İris verisini nnet(perceptron) paketi ile sınıflandırma 3.2.2 Uygulamanın İçeriği Yapay sinir ağımız 4 girişli, tek çıkışlı ve 1 gizli katmanda oluşmaktadır ve sınıflandırma olarak "çiçek türü" referans almaktadır. 3.2.3 Ugulamanın Aşamaları 1. Yapay sinir ağı oluşturmak için R a "nnet" paketinin yüklenmesi ve kullanmak için "nnet" paketinin eklenmesi 2. Verinin eklenmesi ve Düzenlenmesi 3. Verinin sınıflandırılması 4. Oluşturulan Ağın çizmi 5. ağın test aşaması 3.2.4 Ugulamanın R kodları install.packages( datasets ) install.packages( nnet ) 36

library(datasets) library(nnet) ir < rbind(iris3[,,1],iris3[,,2],iris3[,,3]) targets < class.ind(c(rep( s,50),rep( c,50),rep( v,50))) samp < c(sample(1 : 50,25),sample(51 : 100,25),sample(101 : 150,25)) ir1 < nnet(ir[samp,],targets[samp,],size = 2,rang = 0.1,decay = 5e 4,maxit = 200) par(mar = numeric(4), f amily = seri f ) plot.nnet(ir1, pos.col = darkgreen,neg.col = darkblue,al pha.val = 0.7,rel.rsc = 15,circle.cex = 10,cex = 1.4,circle.col = brown ) Şekil 26: İris Veri Sınıflandırmasını Gerçekleştiren Yapay Sinir Ağı test.cl < f unction(true, pred)true < max.col(true)cres < max.col(pred)table(true, cres) test.cl(targets[ samp,], predict(ir1, ir[ samp,])) Şekil 27: İris Veri Sınıflandırmasını Gerçekleştiren Yapay Sinir Ağının Testi 37

3.2.5 Uygulamanın Sonucu Bu uygulamada oluşturulan ağ, eğitim verileri(eğitim girişi ve eğitim çıkışı) ile eğitilerek en iyi model oluşturulmuştur 3.3 Yapay Sinir Ağı ile "Dataset" paketindeki "infert" verisini sınıflandırma 3.3.1 Uygulamanın Amacı "Dataset" paketinde bulunan "infert" verisinin sahip olduğu "case" değişkenine göre sınıflandırma 3.3.2 Uygulamanın İçeriği "Dataset" paketinde bulunan 248 gözlem ve 8 değişkene sahip "infert" verisinin 2 gizli "age","parity","induced","spontaneous" değişkenlerinin giriş olarak kullanarak "case durumlarını sınıfladırma 3.3.3 Ugulamanın Aşamaları 1. Veriyi elde etmek için "Dataset" kütüphanesinin çağrılması 2. Ağı eğitmek için "neuralnet" kütüphanesinin çağrılması 3. Elde edilen veri ile "neuralnet" kütüphanesinin fonksiyonları ile ağı eğitme 4. Elde edilen ağı çizme 3.3.4 Ugulamanın R kodları library(datasets) 38

names(in f ert) library(neuralnet) nn < neuralnet(case age+ parity+induced +spontaneous,data = in f ert,hidden = 2,err. f ct = ce, linear.out put = FALSE) names(nn) nn$result.matrix out < cbind(nn$covariate, nn$net.result[[1]]) dimnames(out) < list(null, c( age, parity, induced, spontaneous, nn out put )) head(out) head(nn$generalized.weights[[1]]) plot(nn) Şekil 28: Infert Verisi Sınıladıran Yapay Sinir Ağı Modeli 3.4 Yapay Sinir Ağı ile Kredi Derecelendirmesi Uygulaması 3.4.1 Uygulamanın Amacı Önceden elde edilen müşteri verilerin yapay sinir ağı ile eğiterek kredi verilmesi uygun bulunup bulunmamasına göre öğrenme gerçekleştirilmştir ve yeni gelen müşterilere kredi verilip verilmemisi ağa göre hesaplanmıştır. 39

3.4.2 Uygulamanın İçeriği Öğrenme için elde edilen eğitim verisi 2000 gözlem ve 6 değişkene sahip bu değişkenler "client id", "income", "age", "loan", "LTI", "default10yr" dir. Ağ girişi olarak "age" ve "LTI(the loan to yearly income ratio)" ele alınmıştır ve çıkış olarak "default10yr" tir. 3.4.3 Uygulamanın Aşamaları 1. Veriyi R ortamına ekleme 2. Eğitim ve Test verisi oluşturma 3. Ağı eğitmek için "neuralnet" kütüphanesinin çağrılması 4. Elde edilen eğitim verisi ile ağı eğitme 5. Elde edilen ağı çizme 6. Test verisi ile ağı test etme 3.4.4 Ugulamanın R kodları library( neuralnet ) getwd() setwd( C : /Users/acer/Desktop ) dataset < read.csv( creditset.csv ) head(dataset) str(dataset) trainset < dataset[1 : 800,] testset < dataset[801 : 2000,] creditnet < neuralnet(de f ault10yr LT I +age,trainset,hidden = 4,li f esign = minimal,linear.out pu FALSE, threshold = 0.1) 40

plot(creditnet, rep = best ) Şekil 29: Kredi Derecelendirme Gerçekleştiren Yapay Sinir Ağı temp_test < subset(testset, select = c( LT I, age )) creditnet.results < compute(creditnet, temp_test) head(temp t est) results < data. f rame(actual = testset$de f ault10yr, prediction = creditnet.results$net.result) results[180 : 215,] results$prediction < round(results$prediction) results[180 : 215,] 3.5 Web Ortamında Dinamik Veri Analizi 3.5.1 Uygulamanın Amacı "Dataset" paketinde bulunan hazır verileri veya sonradan eklenilen verileri Web Ortamında dinamik bir şekilde analiz edilmesi gerçeklenmiştir 41

3.5.2 Uygulamanın İçeriği Uygulamada Shiny paketi ile gerçekleştirilen web arayüzünde eklenilen verilerin özeti, veri yapısı, veri değişkenleriin iişki çizimleri ve veri modellenmesi gerçekleştirilmiştir. 3.5.3 Uygulama Şekil 30: Shiny Paket Uygulması 3.6 Yapay sinir Ağı ile Animasyon Örneği 3.6.1 Uygulama Şekil 31: nnet ve animation Paket Uygulması 42

ARAŞTIRMA BULGULARI VE TARTIŞMA Yapılan uygulamalar sonucunda R programlama dilinin istatistiksel, veri madenciliği, veri analizi ve görselleştirme(grafik) gibi konularda çok iyi olduğu tespit edilmiştir. Diğer programlama dillerini geride bırakarak kullanıcı sayısı sürekli olarak artmaktadır, Verinin sürekli artığı bir dünyada bu verilerin analizi için R bir adım öne çıkmaktadır. 43

SONUÇLAR VE ÖNERİLER Bu çalışmada, son yıllarda akademik çalışmalarda yaygın olarak kullanılan R programlama dilinin tanıtılması hedeflenmiştir. R, ücretsiz olarak temin edilmesi ve dünyanın çeşitli bölgelerindeki araştırmacıların bu dilin gelişimine destek vermesi sonucunda, özellikle veri işleme ve çözümleme alanlarında çalışan kullanıcıların dikkatini çekmiştir 44

KAYNAKLAR [1]http://cran.us.r-project.org/doc/manuals/r-patched/R-lang.html [2]ab.org.tr/ab10/sunum/37.pdf [3]inet-tr.org.tr/inetconf19/sunum/16.pdf [4]http://datawarehouse.gen.tr/r-programi-ve-ozellikleri/ [5]mmfdergi.ogu.edu.tr/mmfdrg/2005-2/6.pdf [6]http://tr.wikipedia.org/ [7]http://www.endmemo.com/program/R [8]http://www.statmethods.net/ [9]http://www.rdatamining.com/ [9]http://www.rdatamining.com/ [9]http://www.rdatamining.com/ [10]http://www.r-bloggers.com/ [11]https://github.com/ 45

ÖZGEÇMİŞ KİŞİSEL BİLGİLER Adı Soyadı :ŞÜKRÜ ERGÜNTOP Uyruğu : T.C Doğum Yeri ve Tarihi: VAN/20-06-1992 Adres : - - Telefon : 0551-553-99-86 e-mail : -@ - EĞİTİM DURUMU Lisans Öğrenimi : Bilecik Şeyh Edebali Üniverstesi, Bilecik Bitirme Yılı : 2015 Lise : - İŞ DENEYİMLERİ Yıl : - Kurum : - Stajlar : TRT Bilgi İşlem Dairesi(Yazılımı ve Donanım) İLGİ ALANLARI YABANCI DİLLER : Orta 46