top of page

💻 R Programlamaya Giriş ve Temel Kavramlar Ders Notları II

  • Yazarın fotoğrafı: Hasan Bakır
    Hasan Bakır
  • 31 Eki
  • 5 dakikada okunur

Eğer “R nedir, nasıl çalışır, neden veri analizi için tercih edilir?” sorularına yanıt arıyorsanız, doğru yerdesiniz. Aşağıda yer alan notlar hem R Studio’nun temel işlevlerini anlamanıza hem de ilk veri analizlerinizi güvenle yapmanıza yardımcı olacak. Kodlama sürecine geçmeden önce, çalışma dizininden operatör kullanımına, vektörlerden fonksiyon yazımına kadar R dilinin temel taşlarını birlikte keşfedelim.


ree

İf-else Kontrol İfadeleri


R’da if-else kontrol ifadeleri, programın akışını koşullara göre değiştirmek için kullanılır. Yani belirli bir koşul doğru (TRUE) ise bir blok çalıştırılır, koşul yanlış (FALSE) ise başka bir blok çalıştırılabilir.


🔹 Temel Yapı


sayi <- 8
if(sayi > 9) {
  print("sayi 9'dan buyuktur")
} else {
  print(sayi * 9)
}

·           if (koşul) { ... } → Koşul doğruysa süslü parantez içindeki kod çalışır.

·           else { ... } → Koşul yanlışsa süslü parantez içindeki kod çalışır.

·           String ifadeler R’da tırnak (" " veya ' ') içine yazılır. Örneğin "sayi 9'dan buyuktur" bir karakter (character) tipidir.


🔹 Açıklama


1.        sayi <- 8 → sayi değişkeni 8 olarak atanır.


2.        if(sayi > 9) → sayi 9’dan büyük mü diye kontrol edilir.

o    Eğer TRUE olsaydı, "sayi 9'dan buyuktur" ekrana yazılırdı.


3.        else → koşul FALSE olduğunda çalışacak bloktur.

o    Burada sayi 9 işlemi yapılır. Eğer sonucu görmek istiyorsak print(sayi9) şeklinde yazmalıyız.


🔹 Örnek Çıktı


Yukarıdaki kod çalıştırıldığında:


[1] 72


çıkacaktır, çünkü 8 sayısı 9’dan büyük değil, else bloğu çalıştı ve 8*9 = 72 hesaplandı.


🔹 İpucu


·           R’da süslü parantezler {} birden fazla satırdan oluşan blokları kapsamak için zorunludur.

·           Tek satırlık işlem için süslü parantez opsiyonel olabilir, ama kod okunabilirliği için kullanmak iyi bir pratiktir.

·           String ifadeleri ekrana yazdırmak için print() veya cat() kullanılabilir:

cat("Sayi 9'dan buyuktur\n")


for Dönüşümü


R’da for döngüsü, klasik programlama dillerindeki gibi belirli bir işlemi tekrar tekrar yürütmek için kullanılır. Ancak R, fonksiyonel programlama yaklaşımıyla çalıştığı için, çoğu durumda for döngüsü yerine vektörleştirilmiş işlemler veya lapply, sapply, map gibi fonksiyonlar tercih edilir. Bu hem kodu daha kısa ve okunaklı yapar hem de hesaplama performansını artırır.


🔹 Basit for döngüsü örneği


lig <- 1:5
for (i in lig) {
  print(1:i)
}
Çıktı:

[1] 1
[1] 1 2
[1] 1 2 3
[1] 1 2 3 4
[1] 1 2 3 4 5

·           1:i ifadesi, her adımda 1’den i’ye kadar olan sayıları oluşturur.

·           Döngü her bir i için print() fonksiyonunu çalıştırır.


🔹 Vektör üzerinden işlem yapmak


Diyelim ki bir vektörümüz var:


a <- c(1, 2, 3, 4, 5)

Bunu for ile kullanabiliriz:

for (i in a) {
  print(i * 2)
}

Çıktı:

[1] 2
[1] 4
[1] 6
[1] 8
[1] 10

Burada her bir eleman i olarak alınır ve istenen işlem (i * 2) uygulanır.


🔹 For döngüsünden kaçınmanın yolları


R’da genellikle döngü yerine vektörleştirilmiş işlemler kullanılır:


a * 2
# [1] 2 4 6 8 10

·           Bu şekilde ayrı bir döngü yazmaya gerek kalmaz.

·           Daha büyük veri setlerinde bu yöntem çok daha hızlıdır.


Benzer şekilde, fonksiyonel yaklaşımlar da kullanılabilir:


sapply(a, function(x) x * 2)
# [1] 2 4 6 8 10

Özetle:


·           for döngüsü R’da kullanılabilir, ancak çoğu zaman gereksiz ve yavaştır.

·           Vektörleştirilmiş işlemler ve apply ailesi döngü yerine tercih edilmelidir.

·           Döngüler daha çok, karmaşık ve durumdan duruma değişen işlemlerde veya öğrenme amaçlı kullanılabilir.


While, Break, Next


R’da while, break ve next ifadeleri, döngülerin kontrolünü sağlamak için kullanılır. for döngüsünde olduğu gibi, bunlar da tekrar eden işlemleri yönetir, ancak daha esnek koşul kontrolleri sunar.


🔹 while Döngüsü


while döngüsü, koşul doğru olduğu sürece tekrarlanır. Yapısı:

while (koşul) {
  # yapılacak işlemler
}

Örnek:

x <- 1

while (x <= 5) {
  print(x)
  x <- x + 1
}

Çıktı:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

·           x <= 5 koşulu doğru olduğu sürece döngü devam eder.

·           Döngü içinde x artırılmazsa, sonsuz döngü oluşur.


🔹 break İfadesi


break, bir döngüyü koşul gerçekleştiğinde hemen sonlandırmak için kullanılır. Örnek:


x <- 1

while (TRUE) {
  print(x)
  if (x == 3) {
    break
  }
  x <- x + 1
}

Çıktı:
[1] 1
[1] 2
[1] 3

·           x == 3 olduğunda döngü durur.

·           Sonsuz döngüden çıkmak için yaygın kullanılır.


🔹 next İfadesi


next, döngüdeki mevcut iterasyonu atlayıp bir sonraki adıma geçmek için kullanılır. Örnek:


for (i in 1:5) {
  if (i == 3) {
    next
  }
  print(i)
}

Çıktı:
[1] 1
[1] 2
[1] 4
[1] 5

·           i == 3 durumunda print() çalıştırılmaz, döngü bir sonraki i değerine geçer.


🔹 Özet


İfade

Kullanım Amacı

while(koşul)

Koşul doğru olduğu sürece döngü çalıştırılır

break

Döngüyü hemen durdurur

next

Döngünün o adımını atlayıp bir sonraki iterasyona geçer


İpucu:


R’da while ve for döngüleri kullanılabilir, ancak genellikle vektörleştirilmiş işlemler veya apply ailesi tercih edilir; döngüler büyük veri setlerinde yavaş çalışabilir.


R’daki Hazır Veri Setlerine Erişim


R’da hazır veri setleri (built-in datasets), öğrenme, test veya örnek analizler yapmak için kullanabileceğimiz önceden tanımlanmış veri kümeleridir. Bu veri setleri çoğu R paketi ile birlikte gelir ve ekstra veri indirmeye gerek kalmadan kullanılabilir.


🔹 Veri Setlerine Erişim


Hazır veri setlerini görmek ve yüklemek için data() fonksiyonu kullanılır:

data()


·           Bu komutu çalıştırdığınızda, R’da yüklü paketlerle birlikte kullanılabilir tüm veri setlerinin listesi ekrana gelir.

·           Örnek olarak R ile birlikte gelen bazı veri setleri: mtcars, iris, airquality, Titanic, CO2 vb.


🔹 Veri Setini Kullanmak


Bir veri setini kullanmak için data("veri_seti_adi") yazabilir veya doğrudan veri setinin adını çağırabilirsiniz:


# Veri setini yükleme

data("mtcars")

 

# İlk birkaç satırını görüntüleme

head(mtcars)


·           head() fonksiyonu veri setinin ilk 6 satırını gösterir.

·           str() fonksiyonu ile veri setinin yapısını ve veri tiplerini inceleyebilirsiniz:

str(mtcars)


🔹 İpucu


·           Hazır veri setleri özellikle istatistik, görselleştirme ve veri manipülasyonu derslerinde örnek olarak kullanılır.

·           Eğer liste çok uzunsa ve belirli bir pakete ait veri setlerini görmek istiyorsanız, paketi yükledikten sonra data(package = "paket_adi") yazabilirsiniz:


data(package = "datasets")

Böylece R’da hazır veri setleriyle çalışma çok kolay hale gelir; analizler ve fonksiyon denemeleri için ideal bir ortam sunar.


Dış Kaynaklı Verileri Okuma - Aktarma


R’da dış kaynaklı verileri okuma, analiz yapmanın temel adımlarından biridir. Veriler genellikle Excel, CSV veya TXT gibi dosyalarda bulunur ve R’a aktarılmadan önce birkaç kurala dikkat etmek gerekir. İşte temel bilgiler:


🔹 R Studio ile Görsel Yöntem (Import Dataset)


1.        Environment paneli → Import Dataset → From Text (readr) veya From Excel seçilir.

2.        Açılan pencereden dosya seçilir ve gerekli ayarlar yapılır (ayırıcı, başlık satırı, veri tipleri vb.).

3.        R otomatik olarak uygun komutu oluşturur ve veri ortamınıza aktarır.


Not: Dosya adlarında ve dizin yollarında Türkçe karakter kullanmamaya özen gösterin. Aksi halde R dosyayı bulamayabilir veya hatalı aktarabilir.


🔹 Manuel Yöntemler


1. read.table( ) ile dosya okuma


·           Temel format:

veri <- read.table("dosya_yolu/dosya_adi.txt", header = TRUE, sep = "\t", stringsAsFactors = FALSE)

·           header = TRUE → Dosyanın ilk satırı sütun isimleri olarak kullanılır.

·           sep = "\t" → Tab ile ayrılmış dosyalar için. CSV ise sep = "," kullanılır.

·           Eğer R dosya yolunu otomatik bulamıyorsa tam yol belirtmek gerekir:

veri <- read.table("C:/Users/Kullanici/Belgeler/veri.txt", header = TRUE)

2. read.csv( ) ile CSV dosyaları


veri <- read.csv("C:/veriler/ornek.csv", header = TRUE, stringsAsFactors = FALSE)

🔹 Kullanıcı Girişi ile Veri Alma


1.        scan()


·           Basit sayısal veya karakter vektörlerini girmek için kullanılır.


x <- scan()  
# Kullanıcı değerleri tek tek girer ve Enter’a basar; bitirmek için boş Enter

2.        readline()


·           Tek bir satır kullanıcı girişi almak için uygundur.


isim <- readline(prompt = "Adınızı girin: ")
print(paste("Merhaba", isim))

scan() genellikle çoklu sayı veya veri vektörleri için, readline() ise tek satır metin girişleri için kullanılır.


Kod Yazım Stili Rehberi


Genel notlar:


  • İsimlendirmeler mümkün olduğu kadar kısa ve anlaşılır olmalı.

  • İsimlendirmeler yapılırken var olan isimlendirmelerden farklı isimler kullanılmalı.

  • İsimlendirmelerde küçük harfler tercih edilmeli.

  • Operatörlerin etrafında boşluklar olmalı.

  • Süslü parantez kullanımı tercih edilmeli ve kod yazımına alt satırdan başlanmalı. Satır uzunluğu kod okunabilirliği açısından 80 karakteri geçmemelidir.

  • Girinti için iki boşluk kullanılmalı.

  • Atama fonksiyonunda “=” yerine “<-“ tercih edilmeli.

  • Kod yazarken aralara boşluk bırakılması daha okunur bir çalışma alanı olur.

Yorumlar


©2022, Hasan Bakır tarafından kurulmuştur.

bottom of page