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.
Bir Rmd dosyası oluşturduğumuzda otomatik olarak bir kod çankı ekleniyor dosyamıza: knitr::opts_chunk$set(echo = TRUE)
Bu derste kullanacağımız paketleri yükledik.
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.
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.
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:
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).
Çalışmalarımıza betimsel bilgiler ekleyebilmek için tablolar oluşturabiliyoruz. Bunun için “kableExtra”,“papaja” gibi paketler kullanılabilir.
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)))| Ç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 |
Ç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.
Örneğin: Bakınız Tablo ?? or Sekil ??.
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.
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.