• Bir önceki dersimizde, tüm içerik ve raporlarımızı hazırlayabileceğimiz Rmarkdown uygulamasına giriş yapmıştık ve markdownda bazı matematiksel formüller nasıl yazılır onu öğrenmiştik. Bu derse de rmarkdown da proje dosyaları nasıl oluşturulur, çalışma dizinimiz nasıl olmalı, nesnelerimizi nasıl isimlendirmeliyiz bunu öğrenerek giriş yaptık.

  • Çalışma dizini hatası almamak adına ben C sürücüsünden D sürücüsü oluşturdum ve tüm r dersi dosyalarımı artık bu dizine kaydediyorum, gerçekten çok pratik oldu, dosya yolum baya kısaldı ve buradan hata alma olasılığım da düşmüş oldu.

Kurulum

Bir Rmd dosyası oluşturduğumuzda otomatik olarak bir kod çankı ekleniyor dosyamıza: knitr::opts_chunk$set(echo = TRUE)

  • Bu chunk da yer alan echo argümanını FALSE yaparsak dosyamızda kod parçalarının görünmeyecek şekilde ayarlayabileceğimizi öğrendik. Bunun gibi daha birçok varsayılan ayarlamalar yapılabildiğini gördük. Örneğin; fig.width = 8 : varsayılan şekil genişliği 8 inçtir , fig.height = 5 : varsayılan şekil yüksekliği 5 inçtir, warning = FALSE : herhangi bir işlev uyarısı gösterme vb.

Bu derste kullanacağımız paketleri yükledik.

Yapı ve Kod Blokları

Rmd dosyamıza (toc) argümanı ile bir içindekiler tablosu ekleyebiliyoruz. Dosyamızın içine # işareti ile eklediğimiz birinci ve ikinci düzey başlıklar içindekiler tablomuza otomatik olarak ekleniyor. Bu gerçekten çok pratik ve büyük kolaylık sağlıyor dosya içinde gezinmek için.

  • Bu ödevimi hazırlarken bende bir içindekiler tablosu ekledim.

Daha sonra kod bloklarının nasıl oluşturulacağını öğrendik ve belgemizde bir kod bloğu oluşturarak “iris” veri setini yükledik.

library(datasets)
data(iris)

Yorumlar

Oluşturduğumuz kod blolarının içine # semboolü ile yorum satırları ekleyebileceğimizi öğrendik. Bu özelliği sık kullanmam gerekiyor aslında. Çünkü dosyaya sonradan dönüp baktığımda ne yaptığımızı hatırlayamayabiliyorum, özellikle karmaşık bulduğum işlemler için yorum satırı eklemeyi alışkanlık haline getirmeliyim.

Örneğin:

n <- nrow(iris) # toplam satır sayısını bulma ve bunu bir n nesnesine atama

#Bu şekilde yorum satırları eklemek dosyamıza bakan herkes için açıklayıcı olur.

Satır İçi Kodlar

Rmd dosyalarımıza satır içi kodlar ekleyerek hesaplama sonuçlarımızın otomatik olarak yazdığımız metin içerisinde görünebileceğini öğrendik. Böylece belgelerimizi daha kolay güncelleyebiliriz.

Örneğin:

# analiz
library(dplyr)
setosa_petal <-filter(iris, Species == "setosa") %>%  pull(Petal.Length)
virginica_petal <-filter(iris, Species == "virginica") %>%  pull(Petal.Length)
petal_test <-t.test(setosa_petal, virginica_petal)

# rapor edilecek degerleri yorumlama
t <- petal_test$statistic %>% round(2)
df <- petal_test$parameter %>% round(1)
p <- petal_test$p.value %>% round(3)
# p-değerleri < .001 ata
p_symbol <- ifelse(p < .001, "<", "=") ## kodun bu kısmı elde edilen p değeri .001'den küçük ise p_symbol değerine <, değil ise = atar.
if (p < .001) p <- .001 

# sonucları birlestirme
petal_result <- glue::glue("t = {t}, df = {df}, p {p_symbol} {p}")
#Virginica çiçeklerinin yaprakları setosa çiçeklerinin yapraklarından uzundur(`r petal_result`). bu cümleyi ve satır içi kodu yazdığımızda aşağıdaki çıktıyı verir.

virginica çiçeklerinin yaprakları setosa çiçeklerinin yapraklarından uzundur (t = -49.99, df = 58.6, p < 0.001).

Tablolar

Çalışmalarımıza betimsel bilgiler ekleyebilmek için tablolar oluşturabiliyoruz. Bunun için “kableExtra”,“papaja” gibi paketler kullanılabilir.

  • Buna örnek olarak, “iris” veri seti üzerinde ortalama yaprak uzunluklarını gösteren bir tabloyu papaja paketi ile oluşturdum.
tablo_ozet <- iris %>%
  group_by(Species) %>%
  summarise(
    n = n(),
    ortalama = mean(Petal.Length),
    sd = sd(Petal.Length)
  )

papaja::apa_table(tablo_ozet,
                  col.names = c("Çiçek Türü", "Frekans", "Ortalama", "Sd"),
                  caption = "Petal Uzunlukları için Özet Tablo",
                  col_spanners = list("Means" = c(3, 4)))
Table 1: Petal Uzunlukları için Özet Tablo
Çiçek Türü Frekans Ortalama Sd
setosa 50 1.46 0.17
versicolor 50 4.26 0.47
virginica 50 5.55 0.55

Görseller

Çeşitli grafikler oluşturarak bunları raporlarımıza nasıl ekleyebileceğimizi öğrendik. Bu grafikler karmaşık veri serlerini görselleştirmek adına oldukça kullanışlı olacaktır.

library(ggplot2)
ggplot(iris, aes(x = Species, y = Petal.Length)) +
  geom_boxplot()

  • Kodlarla oluşturamadığımız şekilleri de belgemize resim olarak nasıl yükleyebileceğimizi öğrendik.
neden R
neden R

Bağlantılı Dokümanlar

  • Markdown bölümler arasında bağlantılar içeren daha uzun raporlar oluşturmamıza da imkan sağlıyor. Başlığı olan tüm şekillere veya tablolara otomatik olarak şekil ve tablo numaraları ekliyor ve bunlara referansla bağlantı vermemizi sağlıyor. Tablolara ve şekillere bağlantılar oluşturmak için, şekillerimizi veya tablolarımızı oluşturan kod bloklarımızı adlandırmamız ve ardından satır içi kodlamayla bu adları çağırmamız gerekiyor.

Örneğin: Bakınız Tablo ?? or Sekil ??.

Kaynakça

  • R Markdown’da metin içi referanslar yapmanın ve otomatik olarak bir kaynakça oluşturmanın birkaç yolu vardır. Markdown dosyalarının, atıfta bulunmamız gereken referansları içeren bir BibTex veya JSON dosyasına (referansları belirli bir formatta içeren düz bir metin dosyası) bağlanması gerekir. Bu dosyanın adını bibliography: refs.bib gibi YAML başlığında belirtiriz ve [@tidyverse] gibi bir @ sembolü ve kısa ad kullanarak metin içinde referanslara atıfta bulunuruz. Referanslarımızı örneğin APA stilinde biçimlendirmek için bir Citation Style Language (.csl) dosyası da ekleyebiliriz. apa-tr.csl ise türkçe referans göstermek için kullanılabilir.

Referans Yazılımdan Dönüştürme

EndNote veya Zotero gibi çoğu referans yazılımı BibTeX formatına aktarabilen dışa aktarma seçeneklerine sahiptir. Ortaya çıkan dosyadaki kısa adları kontrol etmek yeterlidir.

  • Bu yazılımlar, referanslarımızı otomatik olarak düzenler ve akademik yazım sürecimizi oldukça kolaylaştırmış olur.

BibTex Dosyası Oluşturma

Referanslarımızı manuel olarak da ekleyebiliriz.

  • RStudio’da* File > New File… > Text File seçeneğine gideriz ve dosyayı refs.bib olarak kaydederiz.

  • Ardından, YAML başlığımıza bibliography: refs.bib satırını ekleriz.

 #@article{smith2020data,
 # title={Data Science and Machine Learning},
 # author={Smith, John and Doe, Jane},
 # journal={Journal of Data Science},
 # year={2020},
 # volume={10},
 # number={3},
 #pages={123--145},
 #publisher={Data Science Press}

NOT: Bu dersten sonra markdownı biraz daha sevmeye başladım diyebilirim. Hala tabiiki çok karmaşık geliyor ama git gide daha az “ya bu ne” diyorum. Ama sık tekrar yapmak gerçekten çok öenmli, çok çabuk unutuluyor üstünden zaman geçince. 09.00-18.00 çalışan bir anne olarak bu tekrar kısmı oldukça zor ama elimden geleni yapıyorum.