8 İş akışı: projeler

Bir gün R’ı kapatmanız, başka bir şeyler ile ilgilenmeniz ve ertesi günü analizlerinize geri dönmeniz gerekebilir. Bir gün aynı anda R kullanan birden fazla analiz üzerinde çalışıyor olabilir ve bunları birbirinden ayrı tutmak isteyebilirsiniz. Bir gün dışarıya ait olan verileri R içerisine taşımanız ve R ile elde ettiğiniz sayısal verileri ve şekilleri tekrar dışarıya aktarmanız gerekebilir. Bu gerçek yaşam durumlarıyla başa çıkmak için iki karar vermeniz gerekmektedir:

  1. Peki ya analizinizin “gerçek”liği nedir? Örneğin ne yaptığınıza dair son belgelerinizi ne olarak kaydedeceksiniz?
  2. Analizleriniz nerede “yaşıyor”?

8.1 Gerçek nedir?

Yeni başlayan bir R kullanıcısı olarak, fonksiyonlar, değişkenler vb. nesnelerden oluşan ortamınızı (örneğin, ortam sekmesinde listelenen veriler) “gerçek” olarak düşünebilirsiniz. Ancak, uzun vadede R betik dosyalarınızı “gerçek” olarak kabul ederseniz çok daha yerinde karar vermiş olursunuz.

R betik dosyalarınızla (ve veri dosyalarınızla) çalıştığınız ortamı yeniden oluşturabilirsiniz. Oysa ki R betik dosyalarınızı ortamdan oluşturmanız çok daha güçtür! Ya belleğinizden çok fazla kod yazmanız gerekecektir (tümüyle hata yapma olasılığı), ya da dikkatlice R geçmişinizi incelemeniz gerekmektedir.

Bu davranışı geliştirmek için, RStudio’ya oturumlar arasında, çalışma ortamınızı korumaya almaması gerektiğini bildirmenizi önemle tavsiye ederim.

Bu sizi kısa vadede biraz sıkıntıya sokabilir, çünkü artık RStudio’yu yeniden başlattığınızda, en son çalıştırmış olduğunuz koda ait sonuçları hatırlamayacaktır. Fakat bu kısa süreli sıkıntı sizi daha uzun süreli bir sıkıntıdan kurtaracaktır, çünkü bu durum sizi kodunuz içerisindeki tüm önemli etkileşimlere hakim olmaya zorlar. Üç ay sonra hesaplama işleminin kodunun kendisi yerine, sadece çalışma ortamınızdaki önemli bir hesaplamanın sonuçlarını kaydetmiş olduğunuz gerçeğini anlamanızdan daha kötü birşey yoktur.

Kodunuzun önemli kısımlarını düzenleyicide yakaladığınızdan emin olmak için, birlikte kullanabileceğiniz harika bir klavye kısayolu çifti bulunmaktadır:

  1. RStudio’yu tekrar başlatmak için Cmd/Ctrl + Shift + F10 tuşlarına basın.
  2. Geçerli betik dosyasını tekrar çalıştırmak için Cmd/Ctrl + Shift + S tuşlarına basın.

Bu yolu haftada yüzlerce kez kullanıyorum.

8.2 Analizleriniz nerede yaşıyor?

R’ın çalışma dizini hakkında güçlü bir nosyonu vardır. Burası R’ın yüklemisini istediğiniz dosyaları aradığı ve kaydetmesini istediğiniz dosyaları yerleştireceği yerdir. RStudio, mevcut çalışma dizininizi konsolun üst kısmında göstermektedir:

Bunu R’da getwd () kodunu kullanarak yazdırabilirsiniz:

getwd()
#> [1] "/Users/hadley/Documents/r4ds/r4ds"

Yeni bir R kullanıcısı olarak, R’ın çalışma dizininin sizin ana dizininiz, belgeler dizininiz veya bilgisayarınızdaki diğer tuhaf isimli dizinlerden biri olmasına izin verebilirsiniz. Ancak bu kitapta sekizinci bölümdesiniz ve artık bir acemi değilsiniz. Çok yakında, analitik projelerinizi dizinler halinde organize etmeye ve bir proje üzerinde çalışırken, R’nin çalışma dizinini ilgili dizine ayarlayarak kendinizi geliştirmelisiniz.

Bunu önermiyorum, ancak çalışma dizininizi R içinden de ayarlayabilirsiniz:

setwd("/path/to/my/CoolProject")

Ama bunu asla yapmamalısınız, çünkü daha iyi bir yol var; aynı zamanda sizi R çalışmalarınızı bir uzman gibi yönetme yoluna sokan bir yol.

8.3 Yollar ve dizinler

Dosya yolu ve dizinler iki temel dosya yolu stili olmasından dolayı biraz karmaşıktır: Mac/Linux ve Windows. Farklılık gösterdikleri üç ana unsur vardır:

  1. En önemli fark, yol bileşenlerini nasıl ayırdığınızdır. Mac ve Linux eğik çizgi kullanır (örn; plots/diamonds.pdf) ve Windows ters eğik çizgi kullanır (örn; plots\diamonds.pdf). R, her iki türle de çalışabilir (şu anda hangi platformu kullanıyor olursanız olun), ancak ne yazık ki, ters eğik çizgiler R için özel birşey ifade eder ve yol üzerinde tek bir ters eğik çizgi elde etmek için iki ters eğik çizgi yazmanız gerekir! Bu biraz can sıkıcıdır, bu yüzden her zaman Linux/Mac stilini eğik çizgilerle kullanmanızı öneririm.

  2. Mutlak yollar (örn; çalışma dizininizden bağımsız olarak aynı lokasyona işaret eden yollar) farklı görünür. Windows’da bir sürücü harfiyle (örn; C:) veya iki ters eğik çizgiyle (örn; \sunucuadı), Mac/Linux’ta ise eğik çizgi ile başlar (örn; /kullanıcı/hadley). Betik dosyalarınızda asla mutlak yollar kullanmamalısınız, çünkü paylaşımları engellerler: hiç kimse sizin gibi tam olarak aynı dizin yapılandırmasına sahip olmaz.

  3. Son olarak küçük bir fark ~ simgesinin işaret ettiği yerdir. ~ işareti giriş dizininize uygun bir kısayoldur. Windows gerçek bir ev dizini kavramına sahip değildir, bunun yerine belgeler dizininize işaret eder.

8.4 RStudio Projeleri

R uzmanları, bir proje ile ilgili tüm dosyaları bir arada tutarlar — veri girdileri, R betik dosyaları, analitik sonuçlar, şekiller. Projeler vasıtasıyla RStudio bunun için dahili destek sağlamaktadır ki bu akıllıca ve yaygın bir uygulamadır.

Bu kitabın geri kalan kısmında çalışırken sizin için kullanacağınız bir proje oluşturalım. Dosya> Yeni Proje’yi tıklayın ve ardından:

Projenizi r4ds olarak adlandırın ve projeyi hangi altdizine yerleştirdiğinize dikkat edin. Uygun bir yerde saklamazsanız, sonrasında bulmanız zor olacaktır!

Bu işlem tamamlandıktan sonra, sadece bu kitap için yeni bir RStudio projeniz olmuş olacak. Projenizin “ana” dizininin geçerli çalışma dizininiz olup olmadığını kontrol edin:

getwd()
#> [1] /Users/hadley/Documents/r4ds/r4ds

Göreceli yollar içerisindeki bir dosyayı her çağırdığınızda, onu burada arayacaktır.

Şimdi aşağıdaki kodları betik editörüne girin ve dosyayı “diamonds.R” olarak adlandırıp kaydedin. Ardından, proje dizininize bir PDF ve CSV dosyası kaydedecek kodların tümünü çalıştırın. Detayları merak etmeyin, daha sonra kitapta öğreneceksiniz.

library(tidyverse)

ggplot(diamonds, aes(carat, price)) + 
  geom_hex()
ggsave("diamonds.pdf")

write_csv(diamonds, "diamonds.csv")

RStudio’dan çıkın. Projenizle ilişkilendirilen klasörü inceleyin — .Rproj dosyasına dikkat edin. Projeyi yeniden açmak için bu dosyaya çift tıklayın. Bıraktığınız yere geri döndüğünüze dikkat edin: aynı çalışma dizini, kod geçmişi ve üzerinde çalıştığınız tüm dosyalar hala açık. Yukarıdaki talimatlarımı uyguladığınız için, temiz bir sayfa ile başlamanızı garanti altına alan tamamen yeni bir ortama sahip olacaksınız.

En sevdiğiniz işletim sistemine özgü şekilde, bilgisayarınızda diamonds.pdf dosyasını aratın ve (hiç şüphe yok) PDF dosyasını bulacaksınız ve hatta onu oluşturan betik dosyasını da (diamonds.R) bulacaksınız. İşte büyük kazanç! Bir gün bir şekli yeniden oluşturmak ya da nereden geldiğini anlamak isteyeceksiniz. Eğer titizlikle şekilleri dosyalara asla fare veya kopyala yapıştır kullanmadan R Kodları kullanarak kaydederseniz geçmiş çalışmanızı kolaylıkla tekrar yaratabilirsiniz.

8.5 Özet

Özetle, RStudio projeleri gelecekte size iyi hizmet edecek sağlam bir iş akışı sunar:

  • Her veri analizi projesi için bir RStudio projesi oluşturun.

  • Veri dosyalarınızı orada tutun; Bunları R içerisine yüklemeden veri yükleme’de bahsedeceğiz.

  • Kodlarınızı orada tutun; onları düzenleyin, kısımlar halinde veya bir bütün olarak çalıştırın.

  • Çıktılarınızı (çizim ve anlaşılır veri) oraya kaydedin.

  • Mutlak yolları değil, yalnızca göreceli yollarını kullanın.

İhtiyacınız olan her şey tek bir yerde ve üzerinde çalıştığınız diğer tüm projelerden açıkça ayrılmıştır.