8  İş akışı: yardım almak

Bu kitap tek başına yeterli değildir; R’da ustalaşmanızı sağlayacak tek bir kaynak yoktur. Kitapta açıklanan teknikleri kendi verilerinize uygulamaya başladığınızda burada yanıtlamadığımız sorularla karşılaşacaksınız. Bu bölüm, yardım almanızı ve öğrenmeyi sürdürmenizi kolaylaştıracak birkaç ipucu sunar.

8.1 Google dostunuzdur

Takılırsanız, Google ile başlayın. Genellikle bir sorguya “R” eklemek, onu ilgili sonuçlara sınırlamak için yeterlidir: arama yararlı değilse, bu genellikle R’a özgü herhangi bir sonuç bulunmadığı anlamına gelir. Ayrıca “tidyverse” veya “ggplot2” gibi paket adları eklemek, sonuçları size daha tanıdık gelecek kodlarla sınırlandırabilir. Örneğin “R’da kutu grafiği nasıl yapılır” ile “ggplot2 kullanarak R’da kutu grafiği nasıl yapılır” sorgularını karşılaştırın. Google, hata mesajları için özellikle kullanışlıdır. Bir hata mesajı alırsanız ve ne anlama geldiği hakkında hiçbir fikriniz yoksa, onu Google’da aramayı deneyin! Geçmişte başka birinin de aynı konuda kafası karışmış olması ve internette bir çözüm bulunması kuvvetle muhtemeldir. (Hata mesajı İngilizce değilse, Sys.setenv(LANGUAGE = "en") çalıştırın ve kodu yeniden çalıştırın; İngilizce hata mesajları için yardım bulma olasılığınız daha yüksektir.)

Google yardımcı olmazsa, Stack Overflow’u deneyin. Aramayı R kullanan soru ve yanıtlarla sınırlandırmak için sorguya [R] ekleyin ve önce mevcut yanıtları araştırmaya biraz zaman ayırın.

8.2 Bir reprex oluşturma

Google aramanız yararlı bir sonuç vermezse minimal reproducible example (en küçük yeniden üretilebilir örnek) ifadesinin kısaltması olan bir reprex hazırlamak çok iyi bir fikirdir. İyi bir reprex, diğer insanların size yardım etmesini kolaylaştırır ve çoğu zaman onu hazırlama sürecinde sorunu kendi kendinize çözersiniz. Bir reprex oluşturmanın iki kısmı vardır:

  • İlk olarak, kodunuzu yeniden üretilebilir hale getirmeniz gerekir. Bunun için her şeyi kaydetmeniz, yani bütün library() çağrılarını ekleyip gerekli nesnelerin tümünü oluşturmanız gerekir. Bunu yaptığınızdan emin olmanın en kolay yolu reprex paketini kullanmaktır.

  • İkinci olarak örneği olabildiğince küçük hâle getirmeniz gerekir. Sorununuzla doğrudan ilgili olmayan her şeyi ayıklayın. Bu genellikle gerçek hayatta karşılaştığınızdan çok daha küçük ve basit bir R nesnesi oluşturmayı, hatta yerleşik veri kullanmayı içerir.

Bu çok iş gibi geliyor! Ve öyle olabilir; ama harika bir karşılığı var:

  • Vakaların %80’inde iyi hazırlanmış bir reprex sorunun kaynağını ortaya çıkarır. Kendi kendine yeten küçük bir örnek yazarken sorunuzun yanıtını ne kadar sık bulduğunuza şaşırabilirsiniz.

  • Kalan %20’de ise sorunun özünü, başkalarının kolayca deneyebileceği bir biçimde yakalamış olursunuz. Bu, yardım alma şansınızı önemli ölçüde artırır!

Bir reprex’i elle oluştururken, yanlışlıkla bir şeyi kaçırmak kolaydır; bu da kodunuzun başka birinin bilgisayarında çalıştırılamayacağı anlamına gelir. tidyverse’in bir parçası olarak kurulan reprex paketini kullanarak bu sorundan kaçının. Diyelim ki bu kodu panonuza kopyaladınız (veya RStudio Server ya da Cloud’da, onu seçtiniz):

y <- 1:4
mean(y)

Ardından, varsayılan çıktının GitHub için biçimlendirildiği reprex()’i çağırın:

reprex::reprex()

RStudio kullanıyorsanız Viewer panelinde, kullanmıyorsanız varsayılan tarayıcınızda düzgün biçimlendirilmiş bir HTML önizlemesi gösterilir. Reprex otomatik olarak panonuza kopyalanır (RStudio Server veya Cloud’da bunu kendiniz kopyalamanız gerekecektir):

``` r
y <- 1:4
mean(y)
#> [1] 2.5
```

Bu metin Markdown adı verilen özel bir biçimi kullanır. Stack Overflow veya GitHub gibi sitelere yapıştırıldığında otomatik olarak kod görünümünde işlenir. Bu Markdown’ın GitHub’da oluşturulduğunda neye benzeyeceği aşağıdadır:

y <- 1:4
mean(y)
#> [1] 2.5

Başka herkes bunu kopyalayıp yapıştırabilir ve hemen çalıştırabilir.

Örneğinizi yeniden üretilebilir yapmak için dahil etmeniz gereken üç şey vardır: gerekli paketler, veri ve kod.

  1. Paketler, örneğin hangilerine ihtiyaç duyduğunu görmek kolay olsun diye scriptin en başında yüklenmelidir. Bu, her paketin en son sürümünü kullandığınızı kontrol etmek için iyi bir zamandır; paketi kurduktan veya son güncellediğinizden bu yana düzeltilmiş bir hata bulmuş olabilirsiniz. tidyverse’deki paketler için, kontrol etmenin en kolay yolu tidyverse_update()’i çalıştırmaktır.

  2. Veriyi dahil etmenin en kolay yolu, onu yeniden oluşturmak için gereken R kodunu üretmek üzere dput()’u kullanmaktır. Örneğin, mtcars veri kümesini R’da yeniden oluşturmak için şu adımları izleyin:

    1. R’da dput(mtcars) çalıştırın.
    2. Çıktıyı kopyalayın.
    3. reprex’te, mtcars <- yazın, ardından yapıştırın.

    Sorunu hâlâ ortaya çıkaran, verinizin mümkün olan en küçük alt kümesini kullanmaya çalışın.

  3. Kodunuzun başkaları için okunması kolay olmasını sağlamak için biraz zaman ayırın:

    • Boşluk kullandığınızdan ve değişken adlarınızın kısa ancak açıklayıcı olduğundan emin olun.

    • Sorununuzun nerede olduğunu belirtmek için yorumlar kullanın.

    • Sorunla ilgili olmayan her şeyi kaldırmak için elinizden geleni yapın.

    Kodunuz ne kadar kısaysa, anlaşılması ve düzeltilmesi o kadar kolay olur.

Son olarak yeni bir R oturumu başlatıp scriptinizi kopyalayarak ve yapıştırarak örneğin gerçekten yeniden üretilebilir olduğunu doğrulayın.

Reprex oluşturmak kolay değildir; iyi ve gerçekten küçük reprexler hazırlamayı öğrenmek biraz pratik gerektirir. Ancak kod içeren sorular sormayı öğrenmek ve kodu yeniden üretilebilir hâle getirmeye zaman ayırmak, R’da ilerledikçe karşılığını vermeyi sürdürecektir.

8.3 Kendinize yatırım yapmak

Ayrıca, sorunlar ortaya çıkmadan önce kendinizi çözmeye hazırlamak için biraz zaman ayırmalısınız. Her gün R öğrenmeye biraz zaman ayırmak, uzun vadede büyük bir karşılık verecektir. Bunun bir yolu, tidyverse ekibinin tidyverse blogunda neler yaptığını izlemektir. R topluluğunu daha geniş ölçekte takip etmek için R Weekly bültenini okumanızı öneririz. Bu topluluk girişimi, R dünyasındaki en ilginç haberleri her hafta bir araya getirir.

8.4 Özet

Bu bölüm, kitabın Bütünsel bakış (Whole Game) kısmını tamamlıyor. Artık veri bilimi sürecinin en önemli kısımlarını gördünüz: görselleştirme, dönüştürme, düzenleme ve içe aktarma. Artık tüm sürece dair bütünsel bir bakış açınız var ve küçük parçaların ayrıntılarına girmeye başlıyoruz.

Kitabın bir sonraki kısmı olan Görselleştirme; grafik gramerini ve ggplot2 ile veri görselleştirmeyi daha ayrıntılı ele alır, şimdiye kadar öğrendiğiniz araçlarla keşifçi veri analizinin nasıl yapılacağını gösterir ve iletişim amaçlı grafik oluşturmaya yönelik iyi uygulamaları tanıtır.