class: center, top, title-slide .title[ # İLT668, R Markdown Rehberi ] .author[ ### Umut Yener Kara ] .date[ ### 5 Mart, 2023
Güncelleme: May 22, 2023 ] --- class: inverse # R Markdown --- # R Markdown `.Rmd` uzantılı R Markdown dosyaları metin, kod ve kodların çıktılarını biraraya getiren bir formattır. R'da yapılan analizlerin kodlarıyla birlikte raporlanması, aktarılması ve yayılması için kullanılır. -- Avantajları: + Word veya Powerpoint'e kod ve çıktı yapıştırma zahmetinden kurtarır. -- + İnsanlar tarafından scriptlere göre daha rahat okunur bir format. -- + İstediğiniz kadar kod gösterebilirsiniz veya gizleyebilirsiniz -- * Farklı formatta dosyalar yaratabilirsiniz -- + PDF dosyaları + HTML web siteleri + Word ve PowerPoint belgeleri + Sunumlar --- # R Markdown Dosyaları Bir R Markdown dosyası yaratalım: 1. *File > New File > R Markdown...* seçeneğine tıklayın 2. *HTML Output* seçeneğinin tıklandığından emin olun 3. Dosyayı istediğiniz klasöre kaydedin, adını `ilk_rmd.Rmd` koyun 4. *Knit HTML* düğmesine tıklayın 5. R Markdown panosunda süreci takip edin ve sonuca göz atın. -- İsterseniz önizleme ekranında *Open in Browser* düğmesine tıklayarak dosyayı bilgisayarınızın tarayıcısında açabilirsiniz. --- # R Markdown Başlıkları Bir `.Rmd` dosyasının başlığı (header) [YAML](http://yaml.org/) (YAML Ain't Markup Language) diye geçen kod bloğudur, diğer her şey belgenin ana gövdesidir. -- ```{} --- title: "Untitled" author: "Umut Yener Kara" date: "28 Mart 2023" output: html_document --- ``` -- [Kod bloğunda değişikliklerle](http://rmarkdown.rstudio.com/html_document_format.html) formatı değiştirebilirsiniz. ```{} output: html_document: theme: readable ``` --- ## R Markdown Sentaksı .pull-left[ ### Sentaks <pre> **bold** *italik* # Başlık ## Alt-başlık ### Alt-alt-başlık > Ünlü bir insandan > alıntı </pre> ] .pull-right[ ### Çıktı **bold** *italik* # Başlık ## Alt-başlık ### Alt-alt-başlık > Ünlü bir insandan > alıntı ] --- ## Daha Fazla R Markdown Sentaksı .pull-left[ ## Sentaks <pre> 1. Numaralı liste 1 1. Numaralı liste 2 1. Altliste 1 1. Altliste 2 * Numarasız liste * Numarasız liste + Alt liste [URL linki](https://www.hacettepe.edu.tr/)  </pre> ] .pull-left[ ### Çıktı 1. Numaralı liste 1 1. Numaralı liste 2 1. Altliste 1 1. Altliste 2 * Numarasız liste * Numarasız liste + Alt liste [URL linki](https://www.hacettepe.edu.tr/)  </pre> ] --- ## R Markdown'da R Kodu RMarkdown dosyalarında, R kod kısımları **chunks** diye geçer. Kod kısımları üç backtick `{r}` ile başlar üç backtick ile biter. Aşağıdaki chunk... ```{r} summary(cars) ``` Belgede knit edildikten sonra şöyle görünür: ```r summary(cars) ``` ``` ## speed dist ## Min. : 4.0 Min. : 2.00 ## 1st Qu.:12.0 1st Qu.: 26.00 ## Median :15.0 Median : 36.00 ## Mean :15.4 Mean : 42.98 ## 3rd Qu.:19.0 3rd Qu.: 56.00 ## Max. :25.0 Max. :120.00 ``` --- ## Chunk Opsiyonları Kod chunk'larında R koduyla ne yapılacağıyla ilgili opsiyonlar/argümanlar vardır. Bunlar `{r}` kısmına, küme parantezleri içerisine yazılır. * `echo=FALSE`: R kodunu belgede göstermez ama çalıştırır ve sonucunu gösterir * `eval=FALSE`: Kodu belgede gösterir ama çalıştırmaz * `include=FALSE`: Kodu ve sonucunu belgede göstermez ama çalıştırır (paket yüklediğiniz `setup` chunk'ları için idealdir!) * `results='hide'`: Kodu çalıştırır ama sonucunu göstermez * `cache=TRUE`: İşlemlerin sonucunu kaydeder böylece belgeyi her knit ettiğinizde kodu yeniden çalıştırmak zorunda kalmaz. Uzun süren işlemler için kullanılır. * `fig.height=5, fig.width=5`: Kod grafik çiziyorsa boyutlarını değiştirmek için kullanılır. Bunların bazıları her chunk içerisindeki *Modify Chunk Options* isimli çark sembolüne tıklayarak düzenlenebilir. [Sayısız başka opsiyon daha bulunmaktadır](https://yihui.name/knitr/options/). --- ##.left[Chunk opsiyonlarıyla oynamak] Aynı zamanda `r` sonrasında isim yazarak chunk'ları isimlendirebilirsiniz. ```{r summarize_cars, echo=FALSE} summary(cars) ``` Chunk'ları isimlendirdikten sonra, chunk'lar editör panelinin sol altında içindekiler listesinde görülecektir. Aynı zamanda başlık ve alt-başlıklarla navigasyon yapabilirsiniz. --- ## Metinde R kodu Bazen metne doğrudan kodla işlenmiş bir değer koymak isteyebiliriz. Bunu `r` sonrasına kod yazarak yapıyoruz -- 10 üssü 3 `r 10^3` eder. -- 10 üssü 3 1000 eder. -- Aynı şekilde kaydedilmiş değişkenlere/nesnelere de metinde referans verip işlemler yapabiliriz. ```r x <- 5.123958 ``` -- `r x` tek küsüratlı olacak şekilde yuvarlandığında `r round(x, 1)` olacaktır. -- 5.123958 sayısı tek küsüratlı olacak şekilde yuvarlandığında 5.1 olacaktır. --- # R Markdown Kaynakları Daha fazla bilgi için aşağıdaki linklere bakabilirsiniz. * [Belgenin görünümünü değiştirmek için](http://rmarkdown.rstudio.com/html_document_format.html) * [Chunk'lar için](http://rmarkdown.rstudio.com/authoring_basics.html) * [R Markdown: The Definitive Guide](https://bookdown.org/yihui/rmarkdown/) ---