4 İş akışı: esaslar

Artık R kodu çalıştırmada biraz deneyiminiz var. Size fazla detay vermedim ama esaslarını açıkça anlamışsınızdır ya da belki de bu kitabı sinirle fırlatmışsınızdır! R’da programlamaya başladığınızda sinirlenmek doğaldır çünkü noktalama işaretleri için oldukça detaycıdır ve bir karakter bile doğru yerde değilse şikayet eder. Biraz sinirlenmeyi göze almanız gerekse de, rahatlayın, bu hem normal hem de geçicidir: herkesin başına gelir ve üstesinden gelmenin tek yolu denemeye devam etmektir.

Devam etmeden önce, R kodunu çalıştırmada sağlam bir temel edindiğinizden ve en yararlı RStudio özelliklerinden bazılarını bildiğinizden emin olalım.

4.1 Kodlama esasları

Şimdi daha önce size bir an önce grafik oluşturmayı öğretebilmek adına göz ardı ettiğimiz bazı esasları gözden geçirelim. R’ı bir hesap makinesi olarak kullanabilirsiniz:

1 / 200 * 30
#> [1] 0.15
(59 + 73 + 2) / 3
#> [1] 44.7
sin(pi / 2)
#> [1] 1

<- sembolü ile yeni nesneler yaratabilirsiniz:

x <- 3 * 4

Nesneleri oluşturduğunuz tüm R ifadeleri, atama ifadeleri, aynı şekle sahiptir:

nesne_adı <- deger

Bu kodu okurken aklınızdan “nesne adı deger alır” diye geçirin.

Çok fazla atama yapacaksınız ve <- kullanmak biraz acı verici. Tembellik etmeyin ve = kullanmayın: = çalışacaktır, ancak daha sonra karışıklığa neden olacaktır. Bunun yerine, RStudio’nun klavye kısayolunu kullanın: Alt + - (Alt ve eksi işaretine birlikte basın). RStudio’nun sihirli bir şekilde <- sembolünü iyi bir kod düzenleme uygulaması olan boşluklarla çevrelediğine dikkat edin. Kod, iyi bir gününüzde okumak için bile oldukça dertlidir, bu nedenle gözlerinize yardımcı olun ve boşluk kullanın.

4.2 Bir isimde ne var?

Nesne isimleri bir harf ile başlamalıdır ve sadece harfleri, sayıları, _ ve . sembollerini içerebilir. Nesne isimlerinizin açıklayıcı olmasını istersiniz, bu nedenle birden fazla kelime için bir düzene ihtiyacınız vardır. Küçük harfli kelimeleri _ ile ayırdığınız yılan_şekli’ni öneririm.

yilan_seklini_kullanirim
diğerleriDeveŞekliniKullanır
bazilari.nokta.kullanir.
ve_çokAz.Insan_ikisiniBirlikteKullanir

Kod stiline daha sonra fonksiyonlarda geri döneceğiz.

Bir nesneyi, ismini yazarak inceleyebilirsiniz.

x
#> [1] 12

Başka bir atama yapın:

bu_cok_uzun_bir_isim <- 2.5

Bu nesneyi incelemek için RStudio’nun tamamlama tesisini deneyin: “bu” yazın, TAB tuşuna basın, özgün bir önek elde edene kadar karakter ekleyin, sonra da Enter (return) tuşuna basın.

Aman, bir hata var! bu_cok_uzun_bir_isim değerinin 3.5 değil 2.5 olması gerekiyor! Düzeltmenize yardımcı olmak için başka bir klavye kısayolu kullanın. “bu” yazıp ardından Cmd/Ctrl + ↑ (Windows için Alt/Ctrl + ↑) tuşlarına basın. Bu, o harfleri başlatan yazdığınız tüm komutları listeler. Gezinmek için ok tuşlarını kullanın, sonra komutu yeniden yazmak için enter tuşuna basın. 2.5’i 3.5 olarak değiştirin ve yeniden çalıştırın.

Bir başka atama daha yapın:

r_rocks <- 2 ^ 3

Şimdi buna bakmayı deneyelim:

r_rock
#> Error: object 'r_rock' not found
R_rocks
#> Error: object 'R_rocks' not found

R ile aranızda sessiz bir sözleşme var: R sizin için meşakkatli bir hesaplama yapacak, ancak karşılığında talimatlarınızda net olmalısınız. Yazım hataları önemlidir. Büyük harf önemlidir.

4.3 Fonksiyon çağırma

R, aşağıdaki gibi, çağırabileceğiniz geniş bir hazır fonksiyon koleksiyonuna sahiptir:

function_name(arg1 = val1, arg2 = val2, ...)

Düzenli sayıları sıralayan ( sequence) seq() fonksiyonunu kullanmayı deneyelim ve bu sırada RStudio’nun başka yararlı özelliklerini öğrenelim. se yazıp TAB tuşuna basın. Bir açılır pencere size olası tamamlamaları gösterir. Belirginleştirmek için daha fazla karakter yazarak (bir “q”) veya seçmek için ↑ / ↓ oklarını kullanarak seq() seçeneğini belirtin. Açılan kayan araç ipucuna dikkat edin, size fonksiyonun argümanlarını ve amacını hatırlatır. Daha fazla yardım istiyorsanız, sağ alt bölmedeki yardım sekmesinden tüm detayları öğrenmek için F1 tuşuna basın.

İstediğiniz fonksiyonu seçtiğinizde TAB tuşuna bir kez daha basın. RStudio sizin için eşleşen açılış (() ve kapanış ()) parantezleri ekleyecektir. 1, 10 argümanlarını yazın ve return (enter) tuşuna basın.

seq(1, 10)
#>  [1]  1  2  3  4  5  6  7  8  9 10

Bu kodu yazın ve tırnak işaretlerinden de benzer yardımlar alabileceğinize dikkat edin:

x <- "hello world"

Tırnak işaretleri ve parantezler her zaman bir çift halinde gelmelidir. RStudio size yardımcı olmak için elinden gelenin en iyisini yapar, ancak yine de karıştırmak ve yanlış eşleştirme yapmak mümkün. Bu durumda, R size “+” devam karakterini gösterir:

> x <- "hello
+

+, R’ın daha fazla girdi beklediğini söyler; henüz kodunuzu yazmayı bitirmediğinizi düşünüyordur. Genelde bu, bir " veya bir ) sembolünü unuttuğunuz anlamına gelir. Eksik olanı ekleyin veya geçerli işlemi iptal edip, tekrar denemek için ESCAPE tuşuna basın.

Bir atama yaparsanız, değeri göremezsiniz. Daha sonra sonucu derhal kontrol etmek istersiniz:

y <- seq(1, 10, length.out = 5)
y
#> [1]  1.00  3.25  5.50  7.75 10.00

Bu sıradan eylem, atama parantez içine alınarak kısaltılabilir; bu da atamanın kendisinin ve “ekrana yazdır” işleminin gerçekleşmesine neden olur.

(y <- seq(1, 10, length.out = 5))
#> [1]  1.00  3.25  5.50  7.75 10.00

Şimdi, sağ üst paneldeki ortam sekmesine bakın:

Burada oluşturduğunuz tüm nesneleri görebilirsiniz.

4.4 Alıştırmalar

  1. Bu kod neden çalışmıyor?

    my_variable <- 10
    my_varıable
    #> Error in eval(expr, envir, enclos): object 'my_varıable' not found

Dikkatli bakın! (Bu gereksiz bir alıştırma gibi görünebilir, ancak programlama yaparken zihninizi en ufak bir farkı bile görme konusunda eğitmek oldukça işinize yarayacaktır.

  1. Doğru şekilde çalışmaları için aşağıdaki R komutlarının her birini düzenleyin:

    library(tidyverse)
    
    ggplot(data = mpg) + 
      geom_point(mapping = aes(x = displ, y = hwy))
    
    fliter(mpg, cyl = 8)
    filter(diamond, carat > 3)
  2. Alt + Shift + K tuşlarına basın. Ne oluyor? Aynı yere menüleri kullanarak nasıl gidebilirsiniz?