1 R ve Rstudio Temeller

R ve RStudio’nun nasıl kullanılacağının yanı sıra bazı temel programlama kavramları ve terminolojisi, yaygın tuzaklar, faydalı ipuçları ve nereden yardım alınabileceği konularını ele alacağız. Programlama deneyimi olmayanlar bu bölümü özellikle yararlı bulacaktır, ancak daha önce R kullanmış olsanız bile bazı yararlı ipuçları ve püf noktaları bulabilirsiniz.

1.1 R Nedir?

  • R istatistiksel hesaplamalar yapabilen bir programlama dilidir.

  • 1996 yılında Auckland Universitesi’nde Ross Ihaka ve Robert Gentleman tarafından geliştirilmiştir.

  • 1960 yılında Bell Laboratories’de John Chambers ve arkadaşları tarafından geliştirilen S dilinin açık kaynak kodlu halidir.

  • R yazılımı Genel Kamu Lisansi (GNU* General Public Licence) koşulları altında ücretsiz dağıtılmaktadır.

  • R ve Temel Geliştirme Takımı (R core team) ile ilgili bilgilere R’in internet sitesinden (https://www.r-project.org/) ulaşılabilir.

  • R dilinin ilk sürümü 29 Subat 2000 tarihinde yayınlanmıştır. Her iki-üç ayda bir sürümler güncellenmektedir.

  • RStudio, R ile çalışmayı kolaylaştıran bir Entegre Geliştirme Ortamıdır (Integrated Development Environment[IDE]).

  • Bunu İngilizce bilmek ve kitap yazmak için NotePad gibi düz bir metin editörü kullanmak ile Microsoft Word gibi bir kelime işlemci kullanmak gibi düşünün. Bunu yapabilirsiniz, ancak bu kadar iyi görünmez ve yazım denetimi ve biçimlendirme gibi şeyler olmadan çok daha zor olur. Benzer bir şekilde, R Studio olmadan da R kullanabilirsiniz ancak bunu tavsiye etmiyorum.

  • Unutmamanız gereken en önemli şey, bu ders için tüm çalışmalarınızı RStudio kullanarak yapacak olsanız da, aslında iki yazılım parçası kullanıyorsunuz, bu da zaman zaman her ikisinin de ayrı güncellemeleri olabileceği anlamına geliyor.

  • R’yi ölçme için kullanmanın iki yolu vardır. İlk olarak, web tarayıcınız aracılığıyla R ve R’nin çevrimiçi bir sürümünü kullanabilirsiniz (R server/sunucusu). İkincisi, R ve RStudio’yu dizüstü veya masaüstü bilgisayarınıza ücretsiz olarak indirip kurabilirsiniz.

1.2 Neden R?

  • R istatistiksel programlama, veri analizi ve grafiksel gösterim için kullanılan ve ticari bir amaç gütmeyen ücretsiz bir yazılımdır.

  • R, UNIX, Windows ve MacOS gibi çeşitli platformlarda kodları derlemekte ve çalıştırmaktadır.

  • SPSS, SAS gibi veri analizi programları ücretlidir, ayrıca bazı özel psikometri analizleri için yeterli değildir.

  • R, açık kaynak kodlu olduğu için program kodlarına istenildiği zaman erişilebilir.

  • Diğer istatistiksel yazılımlar ile karşılaştırıldığında R komut satırı ara yüzünü kullanmaktadır.

  • Basit koşullar, döngüler ve kişi tanımlı fonksiyonlar yazmaya uyumlu basit ve etkili bir yazım diline sahiptir.

  • R’in ayrıca grafiksel imkânları oldukça fazladır; bu nedenle yayınlanabilir/basma uygun grafikler oluşturmak kolaydır.

  • R ekibi birçok alanda ayrıntılı dokümantasyonu yapılmış R paketleri geliştirmektedir.

  • Klasik istatistik yazılımlarında analiz sonuçları bir kez elde edilir. R yazılımında ise sonuçlar çalışma alanına kaydedilerek, ileriki analiz aşamalarında tekrar kullanabilir.

  • R, psikometri alanında sıklıkla kullanılan simülasyon çalışmaları için (tekrarlı işlemler için) de avantaj sağlamaktadır.

  • R, diğer programlama dilleri ve istatistik paket programları ile uyumludur.

2 R Paketler

  • R’yi yüklediğinizde, veri işleme ve istatistiksel analiz seçenekleri de dahil olmak üzere bir dizi fonksiyona erişebilirsiniz. Varsayılan kurulumda yer alan fonksiyonlar genellikle Temel R/Base R olarak adlandırılır ve birçok Temel R fonksiyonunu gösteren faydalı bir cheatsheet sayfası vardır 🔗cheatsheet

  • Temel R telefonunuzda gelen varsayılan uygulamalar, paketleri ise ayrıca indirmeniz gereken ek uygulamalar olarak düşünmek faydalı olabilir.

  • R fonksiyonları ayrı paketler halinde düzenlenmişlerdir. 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 CRAN’den temin edilerek yüklenebilmesidir.

  • Her paketin bir yaratıcısı ve kendisine ait bir yardım dosyası bulunur.

3 Fonksiyonlar

  • Fonksiyon belli bir görevi yerine getirmek için yazılan bir grup komuttur.

  • Fonksiyonların çalışması için girdilerinin olması gerekmektedir. Fonksiyonlar girdileri ile yaptıkları işlem sonucunda bir çıktı oluştururlar.

  • Fonksiyonlar girdileri o fonksiyonun çalışması için önceden belirlenen argümanlar ve o argümanların değerlerinden oluşur. (dilbilimle ilgileniyorsanız, bunları bir özne ve nesne gerektiren fiiller olarak düşünmek isteyebilirsiniz)

  • Fonksiyonların kullanımında üç noktaya dikkat edilmelidir.

    1. argümanların sırası

    2. argümanların olağan (default) değerleri

    3. bazı argümanların zorunlu, bazı argümanların opsiyonel olmasıdır

  • Bir fonksiyonun aldığı tüm argümanlara yardım dokümantasyonunu kullanarak ?function formatını kullanarak bakabilirsiniz. Bazı argümanlar zorunlu, bazıları ise isteğe bağlıdır. İsteğe bağlı bağımsız değişkenler, herhangi bir değer girmezseniz genellikle varsayılan/olağan (normalde yardım belgelerinde belirtilen) bir değer kullanır.

  • Örnek olarak, normal dağılıma sahip bir sayı kümesini rastgele üreten rnorm() fonksiyonunun yardım belgelerine bakalım.

  • Bir fonksiyonun aldığı tüm argümanlara yardım dokümantasyonunu kullanarak ?function formatını kullanarak bakabilirsiniz. Bazı argümanlar zorunlu, bazıları ise isteğe bağlıdır. İsteğe bağlı bağımsız değişkenler, herhangi bir değer girmezseniz genellikle varsayılan/olağan (normalde yardım belgelerinde belirtilen) bir değer kullanır.

    Argüman isimleri

    • Yukarıdaki örneklerde, kodumuzdaki bağımsız değişken adlarını yazdık (örneğin, n, mean, sd), ancak bu kesinlikle gerekli değildir. Aşağıdaki iki kod satırının her ikisi de aynı sonucu üretecektir (rnorm() fonksiyonunu her çalıştırdığınızda rastgele olduğu için biraz farklı bir sayı kümesi üretecektir, ancak yine de aynı ortalama ve SD’ye sahip olacaklardır):
    rnorm(n = 6, mean = 3, sd = 1) rnorm(6, 3, 1)
    • Önemli olarak, eğer argüman isimlerini yazmazsanız, R argümanların varsayılan sırasını kullanacaktır, yani rnorm için girdiğiniz ilk sayının n olduğunu varsayacaktır. ikinci sayı mean ve üçüncü sayı sddir.

    • Eğer argüman isimlerini yazarsanız, argümanları istediğiniz sırada yazabilirsiniz:

    rnorm(sd = 1, n = 6, mean = 3)
    • R’yi ilk öğrenirken, fonksiyonun her bir parçasının ne yaptığını hatırlamanıza ve anlamanıza yardımcı olabileceğinden, argüman adlarını yazmayı yararlı bulabilirsiniz. Ancak, becerileriniz ilerledikçe argüman adlarını atlamayı daha hızlı bulabilirsiniz ve ayrıca argüman adlarını kullanmayan çevrimiçi kod örnekleri göreceksiniz, bu nedenle her bir kod parçasının hangi argümana atıfta bulunduğunu anlayabilmek önemlidir (veya kontrol etmek için yardım belgelerine bakın).

    • Bu derste, her bir fonksiyonu ilk kez kullandığımızda argüman adlarını her zaman yazacağız, ancak sonraki kullanımlarda bunlar atlanabilir.

    TAB ile otomatik tamamlama

    • R Studio’nun çok kullanışlı bir özelliği, fonksiyonlar için TAB otomatik tamamlama özelliğidir (bkz. Şekil 3.1). Fonksiyonun adını yazıp tab tuşuna basarsanız, R Studio size fonksiyonun aldığı argümanları kısa bir açıklama ile birlikte gösterecektir. Argüman adının üzerinde enter tuşuna basarsanız, tıpkı telefonunuzdaki otomatik tamamlama gibi adı sizin için dolduracaktır. Bu, R’yi ilk öğrenirken inanılmaz derecede kullanışlıdır ve bu özelliği sık sık kullanmalıdır.

4 Vektörler

  • R lineer cebir temelli bir programlama dilidir.

  • Vektörler tek boyutludur.

  • R’da vektörler birleştirmek (combine/concatenate) anlamına gelen c() fonksiyonu ile oluşturulmaktadır.

  • R da veriler bir araya gelerek veri yapılarını oluşturur.

    • vektör (vector)

    • liste (list)

    • matris (matrix)

    • veri seti (data.frame)

    • dizi (array)

4.1 Vektör Oluşturma

(sayisal_vektor <-  c(1,2,3))
## [1] 1 2 3
(karakter_vektor <-  c("a","b","c"))  ## cift tirnak
## [1] "a" "b" "c"
(mantiksal_vektor <- c(TRUE,TRUE,FALSE))
## [1]  TRUE  TRUE FALSE

4.2 Vektör İşlemleri

  • Vektör uzunluğu length() fonksiyonu ile vektör türleri ise class(), mode() ya da typeof() fonksiyonları ise tur belirlemek için kullanılmaktadır.

  • Vektörler bir veya daha fazla elemandan oluşabilmektedir.

a <- 1  # tek elemandan oluşur. # Vektör uzunluğunu öğrenmek icin length() fonksiyonu length(a)
## [1] 1
x <- 1:10
  • bir vektöründeki verilerin toplanması sum(x) 55

  • bir vektöründeki verilerin çarpılması prod(x) 3.6288^{6}

  • bir vektöründeki verilerin küçükten büyüğe sıralanması sort(x) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

  • bir vektörünün elemanların sıralarının tersine çevrilmesi rev(x) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

  • bir vektöründeki verilerin standart sapmasının hesaplanması sd(x) 3.0276504

  • bir vektöründeki en büyük verinin gösterilmesi max(x) 10

  • bir vektöründeki en küçük verinin gösterilmesi min(x) 1

  • En büyük verinin vektörün kaçıncı elemanı olduğunun gösterilmesi which.max(x) 10

  • En küçük verinin vektörün kaçıncı elemanı olduğunun gösterilmesi which.min(x) 1

  • Vektörlerden eleman sırası, isim ve mantıksal operatörler olmak üzere üç farklı yolla eleman seçilebilir.

ad  <-  c("Ali","Elif","Su","Deniz", "Aras","Berk","Can","Ece","Efe","Arda")
  • ad vektörünün 1. elemanı ad[1] Ali

  • ad vektörünün 5. elemanını yazdıracak kodu oluşturunuz.

  • ad vektörünün son elemanını yazdıracak kodu oluşturunuz.

  • ad vektörünün son elemanını yazdıracak kodu vektörün 10 elemanlı olduğunu bilmediğiniz de ne yaparsınız?

  • Vektörün sadece 1., 5. 8 elemanının yazdıracak kodu oluşturunuz.

  • Vektörün sadece 1. elemanının hariç tutacak kodu oluşturunuz

  • Vektörün 1. ve 5. elemanının hariç tutacak kodu oluşturunuz

  • Vektörün son üç elemanını yazdıracak kodu oluşturunuz

4.3 Vektöre eleman eklenmesi

ad[11] <- "Asu"; ad
##  [1] "Ali"   "Elif"  "Su"    "Deniz" "Aras"  "Berk"  "Can"   "Ece"   "Efe"   ## [10] "Arda"  "Asu"
  • vektöre birden fazla eleman eklenmesi
ad[12:13] <- c("Ahu","Han"); ad
##  [1] "Ali"   "Elif"  "Su"    "Deniz" "Aras"  "Berk"  "Can"   "Ece"   "Efe"   ## [10] "Arda"  "Asu"   "Ahu"   "Han"
  • Vektörün ortasına eleman eklenmesi append() fonksiyonu ile yapılabilir. Fonksiyon yardım sayfasını inceleyiniz.
(ad <- append(ad, "Taha", after = 3))
##  [1] "Ali"   "Elif"  "Su"    "Taha"  "Deniz" "Aras"  "Berk"  "Can"   "Ece"   ## [10] "Efe"   "Arda"  "Asu"   "Ahu"   "Han"
  • ya da c() fonksiyonu ile yapılabilir.
ad <- c(ad[1:5],"Selim",ad[7:length(ad)]); ad
##  [1] "Ali"   "Elif"  "Su"    "Taha"  "Deniz" "Selim" "Berk"  "Can"   "Ece"   ## [10] "Efe"   "Arda"  "Asu"   "Ahu"   "Han"

4.4 Alıştırma

  • 10 kişiden oluşan bir gruptaki kişilerinin boy ve kilo ölçümleri için ise aşağıdaki vektör oluşturulmuştur.
ad  <-  c("Ali","Elif","Su","Deniz", "Aras","Berk","Can","Ece","Efe","Arda") boy <- c(160,165,170,155,167,162,169,158,160,164) kilo <-c(50,55,57,50,48,65,58,62,45,47)
  • Eğer elimizdeki vektör isimlendirilmiş bir vektör ise eleman seçimini isimle de yapabiliriz.
#isimsiz boy vektoru names(boy) # names() fonksiyonu ile isimlendirme yapılabilir.
## NULL
  • ad vektörünü boy vektörü ile isimlendirirken nasıl kullanabiliriz?

  • Arda ’nın boyunu isimlendirilmiş vektörü kullanarak boy["Arda"] ile yazdırırsınız

4.5 Örüntülerle Vektör Oluşturma

  • Vektör oluşturmanın farklı yolları bulunmaktadır.

  • En basit yolu iki nokta ":" operatörünü kullanmaktır.

rakamlar <- 0:9 rakamlar
##  [1] 0 1 2 3 4 5 6 7 8 9
  • büyükten küçüğe rakamlardan vektör oluşturulması
rakamlar <- 9:0 rakamlar
##  [1] 9 8 7 6 5 4 3 2 1 0

5 R Nesneler

  • Örnek bir veri seti
library(tidyverse) data(diamonds) head(diamonds)
carat cut color clarity depth table price x y z
0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
0.29 Premium I VS2 62.4 58 334 4.20 4.23 2.63
0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48

R nesne (object) yönelimli bir programlama dilidir.

  • Karakter (character)

  • Sayısal (numeric)

    • tam sayı (integer)

    • ondalıklı sayı (double)

    • karmaşık sayı (complex)

  • Mantıksal (logical)

  • Faktör (factor)

  • Liste (list)

  • Fonksiyon (function)

5.1 Tam sayi

  • tamsayı nesnesi oluşturulması
tamsayi <- 2L
  • tamsayi nesnesinin türünün sorgulanması
typeof(tamsayi)
## [1] "integer"
  • tamsayı nesnesinin yazdırılması
tamsayi
## [1] 2

5.2 Ondalık sayı

  • ondaliksayi nesnesinin oluşturulması
ondaliksayi <- 2.5
  • ondaliksayi nesnesinin türünün sorgulanması
typeof(ondaliksayi)
## [1] "double"
  • ondaliksayi nesnesinin yazdırılması
ondaliksayi
## [1] 2.5

5.3 İşlemler

  • tek elemanlı vektörler
x <- 1 y <- 1
x+y
## [1] 2
  • çok elemanlı vektörler
x <- c(3,4,5) y <- c(1,2,3) # vektör eleman sayıları aynı mı? length(x)==length(y)
## [1] TRUE
x+y
## [1] 4 6 8
x-y
## [1] 2 2 2
  • çok elemanlı vektörler
x <- 1:9 y <- c(1,2,3) # vektör eleman sayıları farklı mı? length(x)/length(y)
## [1] 3
x+y
## [1]  2  4  6  5  7  9  8 10 12
x/y
## [1] 1.0 1.0 1.0 4.0 2.5 2.0 7.0 4.0 3.0
  • çok elemanlı vektörler
x <- 1:5 y <- c(1,2) # vektör eleman sayıları farklı olduğunda length(x)/length(y)
## [1] 2.5
  • x+y işleminin sonucu nedir?

Çözüm

x + y
## Warning in x + y: longer object length is not a multiple of shorter object ## length
## [1] 2 4 4 6 6

5.4 Karakter Nesneler

  • karakter nesnesi oluşturulması
karakter <- "olcme"
  • Oluşturulan nesnenin türünün sorgulanmasa
typeof(karakter)
## [1] "character"
  • nesne yazdırılması
karakter
## [1] "olcme"
# karakter nesnesi oluşturulması ad <- "Su" soyad <- "Sevim"
  • iki nesneyi arada boşluk bırakarak birleştirir.
paste(ad,soyad)
## [1] "Su Sevim"
  • sep argümanı farklı şekillerde özelleştirilebilir.
paste(ad,soyad, sep="")
## [1] "SuSevim"
paste(ad,soyad,sep="_")
## [1] "Su_Sevim"
  • base pakette yer alan bazı karakter vektörler bulunmaktadır.
letters
##  [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" ## [20] "t" "u" "v" "w" "x" "y" "z"
LETTERS
##  [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" ## [20] "T" "U" "V" "W" "X" "Y" "Z"
month.name
##  [1] "January"   "February"  "March"     "April"     "May"       "June"      ##  [7] "July"      "August"    "September" "October"   "November"  "December"
month.abb
##  [1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
  • Nesne birleştirme fonksiyonlarından en sık kullananı paste()

  • paste() fonksiyonunun temel argümanları ise sep ve collapse’dir.

harf5<- letters[1:5] (harf51 <- paste(harf5,1:5,sep="_"))
## [1] "a_1" "b_2" "c_3" "d_4" "e_5"
length(harf51)
## [1] 5
(harf52 <- paste(harf5,1:5,sep="_",                  collapse=" "))
## [1] "a_1 b_2 c_3 d_4 e_5"
length(harf52)
## [1] 1
  • paste() fonksiyonun yardım sayfasını inceleyiniz.

Büyük Küçük Harf Düzenleme Fonksiyonları toupper() ve tolower()

toupper(harf5)
## [1] "A" "B" "C" "D" "E"
tolower(harf5)
## [1] "a" "b" "c" "d" "e"

casefold() fonksiyonu da upper argümanı ile birlikte kullanılabilir.

casefold(harf5, upper = FALSE)
## [1] "a" "b" "c" "d" "e"
casefold(harf5, upper = TRUE)
## [1] "A" "B" "C" "D" "E"
  • Karakter nesnelerin kaç harften oluştuğu nchar() fonksiyonu ile belirlenebilir.
nchar(month.name)
##  [1] 7 8 5 5 3 4 4 6 9 7 8 8
  • Karakter nesneleri belli bir yerden bölmek icin substr() ve substring() fonksiyonları kullanılabilir.
substr("YILMAZ", 1,3)
## [1] "YIL"
  • substring("YILMAZ", 1:.. , 1:6) kodunda “Y” “I” “L” “M” “A” “Z” çıktısı oluşturacak kodu yazınız

  • `substring("YILMAZ", ... , 4:6) kodunda “ILM” “ILMA” “ILMAZ”` çıktınısı oluşturacak kodu yazınız

  • Karakter nesnelerde daha fazlası için aşağıdaki fonksiyonları inceleyebilirsiniz.

  • strsplit()

  • noquote()

  • cat()

  • grep()

  • duplicated()

  • agrep()

6 RMarkdown

6.1 Neden tekrarlanabilir raporlar kullanılmalı?

Bir rapor hazırladığınızı düşünün

  • içinde analiz sonuçları olan tablolar

  • grafikler ve görsel olsun

  • bu raporu güncellemeniz gerektiğinde veri seti, grafikler, analizler başka dizinlerde olabilir.

  • Tekrarlanabilir raporlar, tüm analizleri gerçekleştirmek ve tabloları oluşturmak için gereken kodla birlikte rapor metnini tek bir belgede bir araya getirmektir.

  • Bu, başlangıçta biraz fazladan çaba gerektirse de, herhangi bir değişiklik olduğunda tek bir düğmeye basarak tüm raporunuzu güncellemenizi sağlayarak size fazlasıyla geri ödeme yapacaktır.

  • Araştırmalar ayrıca, bilimsel literatürdeki makalelerin çoğunda olmasa bile birçoğunda raporlama hataları olduğunu göstermektedir. Tekrarlanabilir raporlar, transkripsiyon ve yuvarlama hatalarını önlemeye yardımcı olur.

  • Rapor daha sonra orijinal formattan HTML, word ve ya PDF gibi daha taşınabilir başka bir formata “derlenir”. Bu, örneğin Microsoft Excel’de veya SPSS gibi bir istatistik programında bir grafik oluşturup ardından bunu Microsoft Word’e yapıştırdığınız geleneksel kesme ve yapıştırma yaklaşımlarından farklıdır.

    6.2 Bir proje düzenlemek

    • İlk olarak, organize olmamız gerekiyor. RStudio’daki projeler, bir proje için ihtiyaç duyduğunuz tüm dosyaları gruplandırmanın bir yoludur. Çoğu proje komut dosyalarını, veri dosyalarını ve komut dosyası veya görüntüler tarafından oluşturulan PDF raporu gibi çıktı dosyalarını içerir.

    6.2.1 Dosya Sistemi

    • Bilgisayarınızın dosya sistemi, hem dosyaları hem de “alt dizinleri” içeren büyük dizin gibidir. Bir dosyanın konumunu adıyla ve içinde bulunduğu tüm dizinlerin adlarıyla belirtebilirsiniz.

    • Örneğin, Kubra Masaüstünde report.Rmd adında bir dosya arıyorsa, tam dosya yolunu şu şekilde belirtebilir: /Users/Kubra/Desktop/report.Rmd , çünkü Masaüstü dizini, tüm dosya sisteminin tabanında bulunan Kullanıcılar/Users dizininin içindeki Kubra dizininin içindedir. Bu dosya masaüstünüzde olsaydı, kullanıcı dizininizin adı da Kubra değilse muhtemelen farklı bir yola sahip olurdunuz. Şu anda oturum açmış olan kişinin kullanıcı dizinini temsil etmek için ~ kısayolunu da kullanabilirsiniz: ~/Desktop/report.Rmd.

    6.2.2 Çalışma Dizini

    • Tüm dosyalarınızı nereye koymalısınız? Genellikle tek bir proje için tüm komut dosyalarınızın ve veri dosyalarınızın bilgisayarınızdaki tek bir klasörde, o projenin çalışma dizininde olmasını istersiniz. Dosyaları bu ana proje dizini içindeki alt dizinlerde düzenleyebilirsiniz, örneğin tüm ham veri dosyalarını data/import adlı bir dizine koyabilir ve tüm görüntü dosyalarını images adlı bir dizine kaydedebilirsiniz.

    • Kodunuz, uygun biçimi kullanarak yalnızca üç tür konumdaki dosyalar kullanılmalıdır.

      6.2.3 Nesneleri Adlandırma

      Dosyaları, hem insanların hem de bilgisayarların kolayca bulabileceği şekilde adlandırın. İşte bazı önemli ilkeler:

      • dosya ve dizin adları yalnızca harf, rakam, tire ve alt çizgi içermeli, dosya adı ve uzantısı arasında nokta (.) olmalıdır (bu boşluk olmadığı anlamına gelir!)

      • Büyük harf kullanımı konusunda tutarlı olun (hatırlamayı kolaylaştırmak için bir kural belirleyin, örneğin her zaman küçük harf kullanın)

      • dosya adının bölümlerini ayırmak için alt çizgi (_) ve bir bölümdeki sözcükleri ayırmak için tire (-) kullanın

      • dosyaları mantıklı bir sırayla alfabetik hale getiren ve aradığınız dosyayı bulmanızı kolaylaştıran bir kalıpla adlandırın

      • bir dosya adını listenin en üstüne taşımak için önüne alt çizgi ekleyin veya sıralarını kontrol etmek için tüm dosyaların önüne sayı ekleyin

      • tarihler için YYYY-MM-DD biçimini kullanın, böylece kronolojik sıraya göre sıralanırlar.

        6.2.4 Yeni bir projeye başlamak

        • Artık dosya sisteminin nasıl çalıştığını ve komut dosyalarının bunlara erişmesini kolaylaştırmak için nesneleri nasıl adlandıracağımızı anladığımıza göre, projemizi yapmaya hazırız.

        • Öncelikle, bu sınıf için tüm materyallerinizi tutacağınız yeni bir dizin oluşturun (benimki Ranaliz adınında). Bu dizini Global Options’ın general bölümü altında varsayılan çalışma dizini olarak ayarlayabilirsiniz. Bu, bir projede çalışmıyorsanız dosyaların varsayılan olarak buraya kaydedileceği anlamına gelir

6.2 6.3 R Markdown

  • Tekrar üretilebilir raporlar oluşturmak için metin ve kodun karıştırılmasını sağlayan R Markdown kullanacağız. Yeniden üretilebilir bir komut dosyası, kod bloklarında kod bölümleri içerecektir. Bir kod bloğu arka arkaya üç backtick sembolü ile başlar ve biter, küme parantezleri arasında kod hakkında bazı bilgiler bulunur, örneğin {r chunk-name, echo=FALSE} (bu kodu çalıştırır, ancak derlenen belgede kod bloğunun metnini göstermez). Kod bloklarının dışındaki metin, başlıklar, paragraflar, listeler, kalınlaştırma ve bağlantılar gibi biçimlendirmeyi belirtmenin bir yolu olan markdown ile yazılır.

  • Bir şablondan yeni bir R Markdown dosyası açarsanız, içinde birkaç kod bloğu bulunan örnek bir belge görürsünüz. Bir R Markdown (Rmd) belgesinden HTML veya PDF raporu oluşturmak için belgeyi derlersiniz. Bir belgeyi derlemeye RStudio’da örme denir. Dosyanızı bir rapora derlemek için üzerine tıkladığınız, içinden iğneler geçen bir iplik yumağına benzeyen bir düğme vardır.

6.2.1 6.3.1 YAML Header

--- title: "Demo" author: "Kubra" output:   html_document:     toc: true     toc_float:       collapsed: false       smooth_scroll: false       number_sections: false ---

Varsayılan temalar şunlardır: default, cerulean, cosmo, darkly, flatly, journal, lumen, paper, readable, sandstone, simplex, spacelab, united ve yeti.