5 Giriş

R veri analizi, grafik veya interaktif web uygulaması gibi basit olmayan çıktılar oluşturabilir. Bu bölümün amacı basit olmayan çıktılar oluşturmadan önce gereken temel prensipleri göstermektir.

5.1 Fonksiyonlar

R gibi programlanabilir gelişmiş hesap makineleri kullanıcıların fonksiyon yazmasına ve saklamasına izin verir. R kullanıcılarının fonksiyonların nasıl çalıştığını kavraması önemlidir.

5.1.1 R: Basit Hesap makinesi

R hesap yapabilir. Aşağıdaki işlemleri ve ilgili R kodlarını inceleyiniz.

\[\begin{equation} 1+1=2 \tag{5.1} \end{equation}\]
1+1
## [1] 2
\[\begin{equation} 1-1=0 \tag{5.2} \end{equation}\]
1-1
## [1] 0
\[\begin{equation} 1 + (2 / 3) - (2 * 6.5) = -11.33 \tag{5.3} \end{equation}\]
1 + (2 / 3) - (2 * 6.5)
## [1] -11.33333
\[\begin{equation} sin(30) + 4^3 + log(4) + e^3 + \sqrt{7} = 87.13 \tag{5.4} \end{equation}\]
sin(30) + 4^3 + log(4) + exp(3) + sqrt(7)
## [1] 87.12955

Eşitlik (5.1) ’den (5.4) ’e kadar olan işlemler R tarafından tamamlanır fakat hafızada tutulmaz. Eğer yaptığınız bir işelmin sonucunu tekrar kullanmak istiyorsanız ona isim vermelisiniz. İsim verdiğiniz R çıktıları oturum süresince (session) tekrar erişime açıktır. Çıktılara oturum kapandıktan sonra da ulaşmak istiyorsanız kaydetmelisiniz. Kaydetme işlemleri ilerleyen bölümlerde ele alınmıştır. İsim verme işlemi fraklı şekillerde yapılabilir; “=”, “<-” or “<<-”. Bu materyal “=” operatörünü kullanır.

Eşitlik (5.1) ’den (5.4) ’e kadar olan işlemleri oturum süresince saklamak için;

a=1 - 1
b=1 + 1
c=1 + (2 / 3) - (2 * 6.5)
d=sin(30) + 4^3 + log(4) + exp(3) + sqrt(7)

İsim verdiğiniz çıktılar ile işlem yapabilirsiniz.

a+b+c+d
## [1] 77.79622

İsim verdiğiniz bir çıktıyı değiştirebilirsiniz (overwrite)

e=3+2
e
## [1] 5
e=e+10
e
## [1] 15

Farklı bir isim vermek için (Not: R büyük harf küçük harf ayrımı yapar)

Equation1_output=a
Equation1_output + b + c + d  # a+b+c+d ile eşit
## [1] 77.79622

5.1.2 R: Programlanabilir Hesap makinesi

En basit hali ile fonksiyon 3 parçadan oluşur, girdi, işlem, çıktı. Bu bölümde verilen fonksiyonların test puanlarının analiz basamağında kullanıldığını varsayalım.

5.1.2.1 Tek girdi - Tek Çıktı

Aşağıda verilen fonksiyonun adı sabit5 olsun. sabit5 fonksiyonu her öğrencinin puanına 5 puan ekleyecektir. Bir diğer deyişle, son derece basit bir fonksiyon olan sabit5 verilen bir puana 5 ekleyerek çıktı oluşturur.

sabit5=function(girdi){
    cikti=girdi+5
    return(cikti)
    }

sabit5(girdi=50)
## [1] 55
sabit5(60)
## [1] 65
sabit5(80)
## [1] 85

sabit5 fonksiyonu girdiyi alır , 5 ekler (input+5), ve bir çıktı oluşturur (cikti=girdi+5), ve çıktıyı rapor eder (return(cikti)). Bütün bu işlemler { } içinde verilmelidir.

Diğer basit bir fonksiyon sistematik1 olarak isimlendirilmiştir ve verilen her bir puana %1 ekler.

systematic1=function(input){
    output=input+(input/100)
    return(output)
    }

systematic1(input=50)
## [1] 50.5
systematic1(100)
## [1] 101
systematic1(120)
## [1] 121.2

5.1.2.2 Çoklu Girdi-Tek Çıktı

Daha önce verilen fonksiyonlar tek girdi alıp tek çıktı oluşturmuştur. Bu örnekte iki farklı girdi ve tek bir çıktı vardır. Fonksiyona eksipuan adı verilmiştir. Ham puan ve yanlış sayısı verilen fonksiyon, her yanlış için 0.2 puan düşürür. Örneğin 90 puan ve 6 yanlış girildiğinde çıktı olarak (90-0.2*6) 88.8 verilir.

eksipuan=function(puan, yanlis){
    cikti=puan - (0.2 * yanlis)
    return(cikti)
    }
eksipuan(puan=90,yanlis=6)
## [1] 88.8
eksipuan(90,17)
## [1] 86.6

Bir R fonksiyonunda girdiler argüman (arguments) olarak isimlendirilir. eksipuan fonksiyonu 2 argümana sahiptir (puan ve yanlış) ve tek bir çıktı verir. Çoklu argüman ve çoklu çıktı içeren fonksiyonlar yazılabilir.

5.1.2.3 Çoklu Girdi ve Çoklu Çıktı

geridönüt fonksiyonu doğru yanıt sayısını ve her sorunun kaç puan olduğu argümanlarını alır, çıktı olarak toplam puanı ve 100 almak için eksik kalan soru sayısını hesaplar.

geridonut=function(dogruyanit, katsayi){
    total=dogruyanit*katsayi
    kalan=(100-total)/katsayi
    cikti=c(paste("Puan:", total," eksik:",kalan))
    return(cikti)
    }
geridonut(dogruyanit=20,katsayi=2)
## [1] "Puan: 40  eksik: 30"
geridonut(27,2)
## [1] "Puan: 54  eksik: 23"

5.1.2.4 Basit Hata

R fonksiyonlarının çalışması için argumanların doğru kullanılması gerekir. Eğer geridönüt fonksiyonuna katsayı parametresini girmezseniz bir hata ile karşılaşırsınız.

geridonut=function(dogruyanit, katsayi){
    total=dogruyanit*katsayi
    kalan=(100-total)/katsayi
    cikti=c(paste("Puan:", total," eksik:",kalan))
    return(cikti)
    }
geridonut(dogruyanit=20)
## Error in geridonut(dogruyanit = 20): argument "katsayi" is missing, with no default

5.1.2.5 Basit uyarı

R fonksiyonları uyarı içerebilir. Daha önce yazdığımız eksipuan fonksiyonunu düşünelim

eksipuan=function(puan, yanlis){
    cikti=puan - (0.2 * yanlis)
    return(cikti)
    }
eksipuan(puan=50,yanlis=10)
## [1] 48

Bu fonksiyona bir uyarı ekleyebiliriz. Örneğin hesaplanacak puan sıfırın altında ise bir uyarı verebbiliriz.

eksipuan2=function(puan, yanlis){
      cikti=puan - (0.2 * yanlis)
      if (cikti<0) 
    warning("Yeni puan 0'dan düşük")  
    return(cikti)
    }
eksipuan2(puan=10,yanlis=60)
## Warning in eksipuan2(puan = 10, yanlis = 60): Yeni puan 0'dan düsük
## [1] -2

5.1.2.6 Basit Sekte

Bir R fonksiyonu, yazarın belirlediği durumlarda sekteye uğrayabilir. Örneğin eksipuan3 fonksiyonunu 20’den düşük puanlar için düzeltme yapmayacak şekilde yazabiliriz.

eksipuan3=function(puan, yanlis){
 
    if ((puan)<(20)) 
    stop("20den düşük puanlar için bu fonksiyon işlemez")
  
     cikti=puan - (0.2 * yanlis)
      return(cikti)
    }
eksipuan3(10,9)
## Error in eksipuan3(10, 9): 20den düsük puanlar için bu fonksiyon islemez

5.1.3 Yardım!

Her R kullanıcısı yeni fonksiyonlar yazmak zorunda değildir, fakat fonksiyonların nasıl çalıştığını bilmek önemlidir. Eğer R bir hata veriyorsa bu genellikle kullanıcı veya datadan kaynaklıdır. Her ne kadar çok karşılaşılmasa da hatanın fonksiyonun kendisinden kaynaklandığı durumlar da olabilir.

R fonksiyonlar sayesinde çalışır. Dünyanın her yerinden araştırmacılar R fonksiyonları yazmakta, bu fonksiyonları bir R paketi olarak erişime açmaktadırlar. Hali hazırda 10 binden fazla R paketi vardır. R programını indirdiğinizde yaklaşık 30 R paketi bilgisayarınıza otomatik olarak indirilir. Bu 30 R paketinde binlerce fonksiyon bulunur.

R programınızı yüklediğinizde otomatik olarak yüklenen 30 paketten bir tanesi base dir. Bu paketin içinde 1200’den fazla fonksiyon bulunur. Örneğin mean fonksiyonu aritmetik ortalama hesaplar.Genellikle paketler detaylı açıklamalar ile birlikte sunulur. Kullanıcıların bu açıklamalara ulaşabilmesi için çeşitli yollar mevcuttur; help, ?, ?? veya example

help("base")  # 
help(mean)    # aritmetik ortalama fonksiyonu ve argümanları
?mean         # aritmetik ortalama fonksiyonu ve argümanları
??mean        # aritmetik ortalama fonksiyonu ve argümanları
example(mean) # aritmetik ortalama fonksiyonu ve argümanları

5.2 R Data Tipleri

Bu bölümde vektörler, matrisler, değişken çeşitleri, kayıp veriler ve data çerçeveleri (data frames) kısaca tanıtılmıştır.

5.2.1 Vektörler

R c fonksionu ile vektör oluşturabilir. 10 öğrenci için not girelim.

notlar=c(40,50,53,65,72,77,79,81,86,90)
notlar
##  [1] 40 50 53 65 72 77 79 81 86 90

R vektörler üzerinden işlem yapabilir.

notlar=c(40,50,53,65,72,77,79,81,86,90)
#her nota 10 ekle
notlar+10
##  [1]  50  60  63  75  82  87  89  91  96 100
#her nota yüzde 10 ekle
notlar+(notlar*0.10)
##  [1] 44.0 55.0 58.3 71.5 79.2 84.7 86.9 89.1 94.6 99.0
#kendi ile çarp
notlar*notlar
##  [1] 1600 2500 2809 4225 5184 5929 6241 6561 7396 8100
# yeni notlar
notlar2=c(30,40,46,58,64,66,69,72,74,81)
# notlar ve notlar2 nin ortalamasını al
(notlar+notlar2)/2
##  [1] 35.0 45.0 49.5 61.5 68.0 71.5 74.0 76.5 80.0 85.5

# ilk notların yüzde 40ı ile ikinci notların yüzde 60ını topla
notlar*0.4 + notlar2*0.6
##  [1] 34.0 44.0 48.8 60.8 67.2 70.4 73.0 75.6 78.8 84.6

Vektör oluşturmak için işeyarar birçok fonksiyon vardır. Örneğin rep fonksiyonu (bknz: example(rep)) aynı değerleri tekrarlamak için kullanışlıdır.

rnorm fonksiyonu normal dağılıma sahip veriler simüle etmek için işe yarar. Eğer ?rnorm kullanılırsa bu fonksiyonun 3 argümanı olduğu görülür rnorm(n, mean = 0, sd = 1). Bu fonksiyon vektör uzunluğu (değişken sayısı) n verilmediği sürece çalışmaz. Eğer sadece n verilirse, popülasyon ortalaması 0 ve standart sapması 1 olan dağılımdan rasgele seçilen değerler ile bir vektör oluşturulur. Bu parametreler değiştirilebilir. Örneğin rnorm(12,mean=10,sd=2) popülasyon parametreleri 10 ve 2 olan normal bir dağılımdan 12 adet gözlem çeker. Benzer bir fonksiyon runif(n, min = 0, max = 1) tekdüzey bir dağılımdan gözlem çeker.

a=1:12            # a 1 den 12ye tam sayılar
rep(0,12)         # 0 12 kez tekrarlanır
##  [1] 0 0 0 0 0 0 0 0 0 0 0 0
rep(1:5,each=3)   # 1 den 5'e tam sayılar 3er kez tekrarlanır
##  [1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
rep(1:5,times=3)  # 3 kere 1'den 5'e tekrarla
##  [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
seq(from=1,to=12) # 1'den 12'ye tam sayılar
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12
seq(1,25,by=2)    # 1'den 25'e ikişer atla
##  [1]  1  3  5  7  9 11 13 15 17 19 21 23 25
seq(1,6,by=0.5)   # 1'den 6'ya 0.5 atla
##  [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0
rnorm(12)        #  ~N(0,1) 12 gözlem
##  [1] -0.8551587  0.0969097 -0.2694396  0.8976207 -0.7678315  0.4286959
##  [7] -2.3484327  0.9909102  0.2340258  0.3656959  0.5589656 -0.1048886
rnorm(12,mean=10,sd=2) #~ N(10,2) 12 gözlem
##  [1] 10.604310  5.295588  8.721732 10.735017 10.996167 10.369142 11.512545
##  [8]  9.456143 12.439037 11.219526  7.591559 10.325692
runif(12, min = 10, max = 37) 
##  [1] 21.13908 31.77469 20.18875 27.99237 25.65195 36.46129 36.28281
##  [8] 36.74290 22.10927 23.36364 21.58728 32.55032

5.2.2 Matrisler

R matrisler oluşturup işlem yapabilir.

A=matrix(1:16,ncol=4,nrow=4) #4x4 matris oluştur
A
##      [,1] [,2] [,3] [,4]
## [1,]    1    5    9   13
## [2,]    2    6   10   14
## [3,]    3    7   11   15
## [4,]    4    8   12   16
B=matrix(runif(16,min=20,max=40),ncol=4) #4x4 matris oluştur

# işlem örnekleri
A+B    # topla
##          [,1]     [,2]     [,3]     [,4]
## [1,] 26.89828 30.07454 34.93244 33.20429
## [2,] 41.86982 32.11668 44.03693 47.58078
## [3,] 36.10908 31.57328 45.19126 36.71596
## [4,] 43.02128 44.41771 38.72398 44.79924
A*B    # çarp
##           [,1]     [,2]     [,3]     [,4]
## [1,]  25.89828 125.3727 233.3919 262.6558
## [2,]  79.73965 156.7001 340.3693 470.1309
## [3,]  99.32725 172.0129 376.1039 325.7393
## [4,] 156.08510 291.3417 320.6877 460.7879
A%*%B  # matris çarp
##          [,1]      [,2]      [,3]      [,4]
## [1,] 1030.506  850.2476  851.2502  757.9419
## [2,] 1168.404  962.4298  972.1348  862.2422
## [3,] 1306.303 1074.6120 1093.0194  966.5425
## [4,] 1444.201 1186.7942 1213.9040 1070.8427
t(B)   # çevir
##          [,1]     [,2]     [,3]     [,4]
## [1,] 25.89828 39.86982 33.10908 39.02128
## [2,] 25.07454 26.11668 24.57328 36.41771
## [3,] 25.93244 34.03693 34.19126 26.72398
## [4,] 20.20429 33.58078 21.71596 28.79924

5.2.3 Değişkenler

Çözümlenecek verisetinin özelliklerini bilmek çok önemlidir. R içerisinde çözümlenecek değişkenler genellikle sınıflama, sıralı, sürekli , kayıp veya tarih tipindedir.

5.2.3.1 Sınıflama

R’da bir sınıflama verisi alfanumerik şekilde girilebilir fakat yorumlanması sayısal değil sınıflama şeklindedir. Örneğin;

adres=c("AAX","BBZ","CBT","DBA","DDC","XZT")
cinsiyet=c("M","F","F","M","F","M")
id=sample(letters,6)
program=rep(c("var","yok"),each=3)
sehir=as.character(1:6)

5.2.3.2 Sıralı

Sıralı bir değişken sınıflama değişkenine göre daha çok bilgi içerir. Sıra ifade eder fakat değerler arasındaki farklılık anlmalı değildir. Örneğin koşucular birinci, ikinci ve üçüncü olarak sıralanabilir fakat bu sıralama verisi birinci ile ikinci arasında kaç dakika farklılık olduğunu belirtmez. Birinci koşucu ikinciden 5 saniye hızlı iken, ikinci koşucu üçüncü koşucudan yarım saat daha hızlı olabilir. R içerisinde ordered fonksiyonu ve level argümanı ile sıra belirtilebilir. Eğer level argüanı boş bırakılırsa R değerleri küçükten büyüğe sıralar.

soru1=ordered(c("zayif","orta","iyi","iyi","zayif","zayif"),
              levels=c("zayif","orta","iyi"))
ses=ordered(c(1,3,2,2,1,3),levels=c("1","2","3"))

5.2.3.3 Sürekli

Eşit aralıklı veya eşit oranlı değişkenler sıralı ve sınıflama değişkenlerine göre daha fazla bilgi içerir. Değerler arasındaki farklılık anlamlıdır.

notlar=c(52,75,39,62,24,86)
notlar=rnorm(n=6,mean=160,sd=5)

5.2.3.4 Tarih

as.Date fonksiyonu ile tarih verisi girilebilir.

dt=as.Date(c("1994-06-01","1988-10-20","1990-12-01",
                   "1978-03-23","1974-08-22","1994-11-04"))

dt
## [1] "1994-06-01" "1988-10-20" "1990-12-01" "1978-03-23" "1974-08-22"
## [6] "1994-11-04"

tatil=as.Date(c("01/01/2016","04/23/2016","05/19/2016","08/30/2016","09/29/2016"),
                 format="%m/%d/%y")

tatil
## [1] "2020-01-01" "2020-04-23" "2020-05-19" "2020-08-30" "2020-09-29"

Sys.Date( )
## [1] "2017-03-28"
Sys.Date( )-dt
## Time differences in days
## [1]  8336 10386  9614 14250 15559  8180

5.2.3.5 Doğru-Yanlış (logical)

Bu değişken TRUE veya FALSE değerlerini alır. Eğer sayısal veri olmaya zorlanırsa 1 ve 0 değerlerini alır. Aşağıda verilen kod girilen notların ortalamadan düşük olup olmadığını gösterir.

notlar=c(52,75,39,62,24,86)    # notlar
notlar>mean(notlar)            
## [1] FALSE  TRUE FALSE  TRUE FALSE  TRUE
as.numeric(notlar>mean(notlar)) # 1 ve 0.
## [1] 0 1 0 1 0 1

5.2.4 Faktörler

R içerisinde yer alan factor veri tipi sıralı ve sınıflama verileri için kullanılan bir çatıdır.

kurs=factor(c("muhasebe","garson","temizlik","garson","muhasebe","garson"))
ga1=factor(c(1,1,3,4,2,3),levels = 1:4,
           labels=c("tamamenkatilmiyorum","katilmiyorum","katiliyorum","tamamenkatiliyorum"))
ga2=factor(c(1,3,4,4,2,3),ordered = T)
ga3=gl(n=3,k=2,labels=c("A","B","C"),ordered=F)

Faktörler önemlidir. Faktörlerin alt sınıfları (levels) dikkatli bir şekilde incelenmelidir. Çözümleme aşamasında kullanılmayan alt sınıflar silinmelidir. Örneğin veri seti bölünmeden önce Renk faktörü girilmiş olsun, “mavi”, “yeşil”, “sarı” alt sınıflar olsun. Daha sonra veri seti bölündüğünde alt sınıf “sarı” kullanılmamış olsun. R Renk değişkenini hala 3 alt sınıflı olarak düşünecektir ve ona göre işlem yapacaktır. Bu hatalara sebep olur. Droplevel fonksiyonu kullanılarak faktör değişkeni düzeltilmelidir.


renk=factor(c(1,1,1,2,2,3),levels = 1:3,labels=c("mavi","yesil","sari"))
renk
## [1] mavi  mavi  mavi  yesil yesil sari 
## Levels: mavi yesil sari
renk2=renk[1:5]  # renk2 değişkeni son degeri almadı
renk2  #fakat hala 3 level mevcut
## [1] mavi  mavi  mavi  yesil yesil
## Levels: mavi yesil sari
droplevels(renk2) #kullanılmayan level silindi
## [1] mavi  mavi  mavi  yesil yesil
## Levels: mavi yesil

5.2.5 Kayıp Veriler

Veri seti kayıp veriler içerebilir. R kayıp verileri NA (not available) ile belirtir.

gelir=c("maas","maas","destek",NA,NA,"maas")
hanekisi=c(3,2,3,NA,NA,4)

NOT: Kayıp veri belirleyiciler çetrefilli olabilir. NA, , " " (boşluk) veya önceden belirlenmiş bir sayı,örneğin -99 kayıp verileri temsil edebilir.

ornek = factor(c('maas','destek', NA, 'NA'," ",-99,"-99"))

# faktör içerisinde kayıp veriler <NA> olarak verilir.
#  < > içinde yer almayan NA faktör sınıfını gosterir.
# " " bu da faktör alt sınıfını gösterir
#-99 and "-99" aynı faktör sınıfını gösterir


# is.na fonksiyonu kayıp verileri gösterir.
# ornek için bakıldığında sadece 3. eleman kayıp veri olarak görünür
is.na(ornek) 
## [1] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE


#çözüm 'NA', " ", -99 ve "-99" ları NA'ye çevirelim
ornek[ornek=='NA' | ornek==" "| ornek== -99 | ornek== "-99"]=NA

#kontrol
is.na(ornek)
## [1] FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE

#droplevel kullanalım
ornek=droplevels(ornek)

5.2.6 Veri Çerçeveleri (Data Frames)

Bir veri çerçevesi değişkenlerden oluşur. Sosyal bilimcilerin genellikle değişkenler arası ilişkileri araştırdığını düşünürsek, veri çerçeveleri kullanıcılarının temel R ögesidir. Daha önce oluşturduğumuz değişkenleri bir veri çerçevesine alabiliriz;

# hatırlatma
# id=sample(letters,6)

# program=rep(c("var","yok"),each=3)

# cinsiyet=c("M","F","F","M","F","M")

# soru1=ordered(c("zayif","orta","iyi","iyi","zayif","zayif"),
#              levels=c("zayif","orta","iyi"))

# ses=ordered(c(1,3,2,2,1,3),levels=c("1","2","3"))

# notlar=c(52,75,39,62,24,86)

# gelir=c("maas","maas","destek",NA,NA,"maas")


# dt=as.Date(c("1994-06-01","1988-10-20","1990-12-01",
#                    "1978-03-23","1974-08-22","1994-11-04"))

# kurs=factor(c("muhasebe","garson","temizlik","garson","muhasebe","garson"))

basit_data=data.frame(id,program,cinsiyet,soru1,ses,
                      notlar,gelir,dt,kurs)
basit_data
##   id program cinsiyet soru1 ses notlar  gelir         dt     kurs
## 1  e     var        M zayif   1     52   maas 1994-06-01 muhasebe
## 2  d     var        F  orta   3     75   maas 1988-10-20   garson
## 3  s     var        F   iyi   2     39 destek 1990-12-01 temizlik
## 4  g     yok        M   iyi   2     62   <NA> 1978-03-23   garson
## 5  n     yok        F zayif   1     24   <NA> 1974-08-22 muhasebe
## 6  a     yok        M zayif   3     86   maas 1994-11-04   garson

Veri setleri el yordamı ile girildiğinde veya hazır olarak R a aktarıldığında (örneğin excel dosyasından) veri setinin yapısını incelemek önemlidir. str (structure) fonksiyonu kullanılabilir.

str(basit_data)
## 'data.frame':    6 obs. of  9 variables:
##  $ id      : Factor w/ 6 levels "a","d","e","g",..: 3 2 6 4 5 1
##  $ program : Factor w/ 2 levels "var","yok": 1 1 1 2 2 2
##  $ cinsiyet: Factor w/ 2 levels "F","M": 2 1 1 2 1 2
##  $ soru1   : Ord.factor w/ 3 levels "zayif"<"orta"<..: 1 2 3 3 1 1
##  $ ses     : Ord.factor w/ 3 levels "1"<"2"<"3": 1 3 2 2 1 3
##  $ notlar  : num  52 75 39 62 24 86
##  $ gelir   : Factor w/ 2 levels "destek","maas": 2 2 1 NA NA 2
##  $ dt      : Date, format: "1994-06-01" "1988-10-20" ...
##  $ kurs    : Factor w/ 3 levels "garson","muhasebe",..: 2 1 3 1 2 1

5.3 R Paketleri

R bilgisayarınıza kurulurken 30’dan fazla paket yükler. Bu paketler sistem kütüphanesinde saklanır. R paketleri otomatik olarak yüklenen bu 30 paketle sınırlı değildir, örneğin doğrusal karma etkiler modellerini (linear mixed models) çözümlemek için lme(Bates et al. 2015) paketi kullanılabilir. Bu paket 60000’den fazla bilgisayara yüklenmiş ve 1500’den fazla akademik yayında kullanılmıştır. R paketleri genellikle CRAN (comprehensive R archive network) içerisinde bulunur. Paketler yazarlar tarafından güncellendiği sürece CRAN’da bulunur. R paketlerini CRAN’dan çekerek kendi bilgisayarınızda saklayabilirsiniz. Yüklediğiniz paketler kullanıcı kütüphanesinde tutulur. Paketleri bir R oturumunda kullanabilmek için onları aktif hale getirmeniz gerekir.

R ve R Studio’yu kurma aşamasında R-RStudio-R paketleri arasında bilgisayar tarafından sağlanan otomatik bir bağ olduğunu farketmiş olabilirsiniz. R studio R’dan sonra yüklendiğinde bilgisayarınızı tarayacak, R programının yerini bulacak ve ona bağlanacaktır. Hem R hem de R Studio R paketlerinizin yerini bulabilir (eğer siz yerlerini değiştirmediyseniz). Eğer R paketlerinizin nerede olduğunu öğrenmek isterseniz .libPaths() fonksiyonunu kullanabilirsiniz.

CRAN’da yer alan R kütüphaneleri bilgisayarınıza kolayca yüklenebilir. R studio’da yer alan Packages ve install sekmesinden veya install.packages(“paketismi”) fonksiyonu ile paketleri indirebilirsiniz. Paketlerin oturum esnasında aktif hale getirilmesi gerekir. Bu işlem R studio Paketler sekmesinde yer alan paket isimlerinin yanındaki kutucuğa tıklayarak veya library(“paketismi”) fonksiyonu ile tamamlanabilir. Bu basamaklar Video 4 ile gösterilmiştir.5.1.

Figure 5.1: R Paketi Yükle

5.4 Çalışma alanı (workspace)

Bir R oturumu açtığınızda ve R işlemleri yaptığınızda bu işlemler çalışma alanında yürütülür. Her adımınız R Studio sağ üst köşede yer alan History sekmesinde görülür. Çalışma alanınızı oturum sonunda kaydedebilirsiniz. Oturum esnasında oluşturduğunuz R çıktıları çalışma alanında tutulur. ls() fonksiyonu ile bu çıktıları görebilirsiniz.

R çıktıları çalışma alanına getirilebilir veya çalışma alanı dışına uzun süreliğine kaydedilebilir. Dosyaların yerlerini bulmak ile uğraşmak istemiyorsanız bütün işlemlerinizi aynı klasörde tamamlamayı tercih edebilirsiniz. getwd() fonksiyonu size hangi klasör içinde (working directory) olduğunuzu gösterir. Uzun süreliğine kaydetmek istediğiniz bir R çıktısı bu klasöre kolayca kaydedilebilir. Aktif olan klasörünüzü setwd() fonksiyonu ile değiştirebilirsiniz. Tabiki bilgisayarınızda her hangi bir klasörde, hatta internette sakladığınız bir nesneyi R çalışma alanınıza getirebilir veya çalışma alanınızda oluşturduğunuz bir dosyayı bilgisayarınızda her hangi bir klasöre kaydedebilirsiniz. Fakat bu durumlarda adresi (location) hatasız bir şekilde R’a bildirmeniz gerekir. Girdi ve Çıktı konuları bir sonraki bölümde ele alınmıştır.

References

Bates, Douglas, Martin Mächler, Ben Bolker, and Steve Walker. 2015. “Fitting Linear Mixed-Effects Models Using lme4.” Journal of Statistical Software 67 (1): 1–48. doi:10.18637/jss.v067.i01.