Veri Madenciliği

R Project Nedir? What is the R Project?

R Programlama Dili – Bölüm 1

Merhabalar,

Büyük veri analizinde kullanılan ve oldukça popüler olan 2 dilden (diğeri Python) biri olan R Project den bahsedeceğim. Öncelikle R Project hem script bir dil hem de istatistiksel hesaplama ve grafikleri için oluşturulan bilgisayar programıdır. Günümüzde İstatistikçiler, Ekonomistler, Genetik Bilimciler ve Veri Bilimciler tarafından oldukça yaygın olarak kullanılmaktadır. Günümüzde oldukça popüler olan R,  Microsoft (MSSQL 2016 ve Power BI), Oracle (Database), SAP(Hana) gibi teknolojileri devlerinin desteği ile büyümeye devam etmektedir.

R Project Nasıl Ortaya Çıktı?

Dünya genelinde 2 milyondan fazla kullanıcısı bulunan R Project, ilk olarak 1991 yılında Ross Ihaka ve Robert Gentleman tarafından Yeni Zelanda da geliştirildi. Günümüzde İstatistikçiler, Ekonomistler, Genetik Bilimciler ve Veri Bilimciler tarafından oldukça yaygın olarak kullanılmaktadır. Kullanımı oldukça basit ve yalın bir dil olan R, 1976 yılında John Chambers, Rick Becker ve Allan Wilks tarafından Bell laboratuvarlarından geliştirilen “S İstatistiksel Programlama Dili’nin” bir lehçesi olduğunu söyleyebiliriz. S İstatistiksel Programlama Dili günümüzde varlığını R (GNU Free Software) ve S-PLUS (Commercial Product) olarak sürdürmektedir. Dünya genelinde Mayıs 2016 itibariyle popüler programlama dilleri arasında 16. sırada bulunmaktadır.( http://www.tiobe.com/tiobe_index?page=index) R dilinin tarihçesine bakacak olursak;

  • 1991 yılında Ross Ihaka ve Robert Gentleman tarafından Yeni Zelanda geliştirildi.
  • 1993 yılında ilk duyurusu yapıldı.
  • 1995 yılında Martin Michler (Martin Mächler) tarafından GNU General Public License altında R Free Software oldu.
  • 1996 yılında R-help ve R-devel mail list oluşturuldu.
  • 1997 yılında R geliştiricileri The R Core Group adında bir araya gelmişler.
  • 2000 yılında R 1.0.0 versiyonu yayınlandı.
  • 2013 yılında R 3.0.2 yayınlandı. Şuan ise R 3.3.0 yayınlanmış durumdadır.

Neden R Project

  • Açık Kaynak Kodlu (kullanıcıları tarafında geliştirilmeye devam ediliyor),
  • Grafik yetenekleri yaygın istatistiksel paket programlara göre oldukça gelişmiş,
  • Programlama dili basit ve sade,
  • Kurulum ve kullanım kolaylığı,
  • Paket Sistemi ve CRAN (şuanda 7000’den fazla)
  • Geniş Kullanım Alanı,
  • Büyük ve aktif kullanıcı kitlesi,
  • Kullanıcı desteği (R-help, R-dev ve Stackoverflow )

İndirme ve Kurulum

“The R Project for Statistical Computing” yani R Projecti buradan  https://cran.r-project.org/ indirebilirsiniz. Bilgisayarınızın işletim sistemine uygun olarak indirip kurulumu (oldukça basit ve kısa) tamamlayabilirsiniz.

rprojec

R Project için yaygın olarak kullanılan R Stduio IDE sini buradan https://www.rstudio.com/products/RStudio/ buradan indirebilirisiniz.

rstudio.

 

R Kodlayalım

 

 

rkodla

Başlangıç Komutları

  • # Yorum satırı lm=lineer model
  • getwd() #Çalışma dizinini gösterir.
  • dir() #Çalışma dizini altındaki dosyaları listeler.
  • setwd(“D:/RProject “) #Çalışma dizini değiştirmek için kullanılır. ‘/’ işaretine dikkat
  • ls() #Çalışma alanındaki nesneleri listeler.
  • rm(list=ls()) #Çalışma alanındaki tüm nesneleri siler.
  • help(lm) #lm fonksiyonu hakkında bilgi getirir.
  • ?lm #lm fonksiyonu hakkında bilgi getirir.
  • ??lm #lm geçen tüm içerikleri gösterecektir.
  • install.packages(‘ggplo2’) #ggplot2 paketini sisteme indirir.
  • library(‘ggplot2’) #Kurulu ggplot2 paketini sisteme yükler.
  • lm #lm fonksiyonun içerisini gösterir
  • args(‘lm’) #lm fonksiyonun kullanımını ve parametrelerini gösterir.
  • apropos(“nova”) #Aradığınız fonksiyonun isminden emin değilseniz apropos fonksiyonuyla bulanık bir arama yapabilirsiniz.
  • q() #R çıkış.

Nesneler (Objects)

R, nesne tabanlı bir dildir ve içerisindeki her şeyi nesne olarak tutmaktadır. R, 5 temel atomik nesne sınıfına sahiptir

  1. Character
  2. Numeric (Reel Numbers)
  3. Integer
  4. Complex
  5. Logical (True/False)

 Temel R Fonksiyonları

 vector() & c() Kullanımı

x <- c(1:5) #1 den 5 kadar vektör oluşturur.

x <- vector(1:5) #1 den 5 kadar vektör oluşturur.

class() Kullanımı

class(x) #x nesnesinin sınıfını(class) gösterir.

y <- as.character(x) #x nesnesini sınıfını(class) charactere çevirir.

list() Kullanımı

List özel bir vektördür. İçerisinde birden fazla sınıf(class) bulunabilir.

x <- list(1, “a”,TRUE, 1+4i)

matrix() Kullanımı

x <- matrix(nrow=4, ncol=3) #4×3 boyutunda değerleri NA olan matris oluşturur.

x<-matrix(1:6, 2, 3) # 2×3 boyutunda değerleri 1 den 6 ya kadar olan matris oluşturur.

NA: Not available NaN: Not a Number

cbind() ve rbind() Kullanımı

x <- 1:3 #1 den 3  e kadar integer sınıfında nesne

y <- 10:12 # 10 dan 12 ye kadar integer sınıfında nesne

cbind(x,y) #X ve Y yi sütun (column) bazlı birleştirerek matris oluşturur.

rbind(x,y) #X ve Y yi satır (row) bazlı birleştirerek matris oluşturur.

dim() Kullanımı

dim(x) #X matrisinin boyunu verir.

Kayıp Veri (Missing Value) is.na() ve is.nan() Kullanımı

x <- c(1, 2, NA, 10, 3)

is.na(x) # x vektöründeki NA olan değerleri logical olarak gösterir.

Çıktı: [1] FALSE FALSE  TRUE  FALSE FALSE

 

x <- c(1, 2, NA, NaN, 10 ,3)

is.nan(x) # x vektöründeki NaN olan değerleri logical olarak gösterir.

Çıktı: [1] FALSE FALSE FALSE  TRUE FALSE FALSE

 

is.na() fonskiyonu Na(Not available) ve NaN(Not a Number) değerlerini içerir.

is.NaN ise sadece NaN değerlerini içerir.

args(matrix) Kullanımı

args(matrix) #matrix fonksiyonun parametrelerini gösterir.

 Veri tipi: Faktörler (Factors)

Faktörler genellikle kategorik verilerde ve lm(), glm() fonksiyonlarında kullanılır.

lm() lineer model – glm() general lineer model

 

x <- 5 #5 değerini x nesnesine atar

print(x) #x değerini yazdırır.

msg <- “metin uslu” # msg nesnesine metin uslu değerini yazdırır.

 

Online Eğitim ve Siteleri

 

Görüş, öneri ve katkıda bulunmak isterseniz [email protected] ‘dan bana ulaşabilirsiniz. Bir sonraki yazıda yeniden görüşmek üzere, selamlar 🙂

Metin USLU, 1988 yılının Ekim ayında İstanbul’da dünyaya geldim. Liseyi Kadırga Teknik Lisesi Bilgisayar bölümünde tamamladım. Ardından İstanbul Üniversitesi Bilgisayar Teknolojisi ve Programlama bölümünde önlisans, Hacettepe Üniversitesi İstatistik bölümünde lisans derecelerini aldım. İş hayatına 2015 yılında Kuveyt Türk Katılım Bankasında Yönetim Bilişim Sistemleri (10.2015 – 12.2016) departmanında başladım. Ardından Bilgi Teknolojileri ve İletişim Kurumunda (BTK) Big Data Analyst (01.2017 – Devam) olarak iş hayatıma devam etmekteyim. Uluslararası Bilişim Teknolojileri Derneğinde görev almakta ve kişisel ağ günlüğüm veribilimci.org adresinde paylaşımlarda bulunmaktayım.

Paylaşımın gücü adına 🙂