Şu ana kadar öğrendiğimiz derslerde x <- 3 veya isim <- "Mehmet" gibi tekil değişkenler (variables) oluşturduk. Ancak gerçek veri analitiği dünyasında tek bir sayı ile değil, milyonlarca veriden oluşan setlerle çalışırız.
İşte bu noktada Veri Yapıları (Data Structures) kavramı devreye girer.
Veri Yapıları Nedir?
Veri yapılarını, verilerinizi organize ettiğiniz “raflar” veya “kutular” gibi düşünebilirsiniz. Nasıl ki kitapları kitaplığa, kıyafetleri gardıroba koyuyorsak; verileri de özelliklerine göre Vektör, Matris, Liste veya Data Frame gibi yapıların içine koyarız.
R programlamada öğreneceğimiz ilk ve en temel veri yapısı Vektörlerdir.
1. Vektör Nedir?
Vektör, içerisinde tek tip (aynı türden) birden fazla veriyi tutabilen tek boyutlu bir dizidir. R’ın en küçük yapı birimidir.
Vektör oluşturmanın iki temel yolu vardır:
A) İki Nokta Üst Üste (:) ile Aralık Belirtme Ardışık sayıları hızlıca oluşturmak için kullanılır.
hasan2 <- 1:5
Çıktısı: 1 2 3 4 5
B) “c” Fonksiyonu (Combine/Combination) Farklı sayıları veya metinleri bir araya getirmek için c() fonksiyonunu kullanırız. Buradaki “c”, İngilizcedeki “Combine” (Birleştirmek) kelimesinden gelir.
hasan <- c(1, 2, 3, 4, 5)
2. Farklı Veri Tipleriyle Vektörler
Vektörler sadece sayıları değil, metinleri veya mantıksal değerleri de tutabilir.
Metin (String) Vektörü: cigdem <- c(“trabzonspor”, “galatasaray”, “besiktas”, “fenerbahce”)
Mantıksal (Logical) Vektör: asli <- c(TRUE, FALSE, TRUE, TRUE, FALSE)
3. Altın Kural: Tek Tip Veri Zorunluluğu
Vektörlerin en önemli kuralı şudur: “Bir vektörün içindeki tüm elemanlar aynı türde olmak zorundadır.”
Peki, biz inat edip farklı türleri aynı sepete atarsak ne olur? R, veri kaybı yaşamamak için tüm elemanları en kapsayıcı türe (genellikle metne) dönüştürür. Buna Tip Zorlama (Coercion) denir.
Örnekleri inceleyelim:
Örnek 1: Mantıksal ve Metin asli2 <- c(“araba”, TRUE, FALSE)
Sonuç: “araba”, “TRUE”, “FALSE”
R, mantıksal değerleri de tırnak içine alarak yazıya çevirir.
Örnek 2: Sayı ve Metin x <- c(1, 2, 3, “araba”)
Sonuç: “1”, “2”, “3”, “araba”
Sayılar matematiksel özelliğini yitirir ve birer kelimeye dönüşür.
4. Vektör İndeksleme: Veriye Erişmek
Oluşturduğumuz uzun bir vektörün içinden sadece belirli bir elemanı çekip almak istersek Köşeli Parantez [ ] kullanırız.
Dikkat: Python gibi dillerde saymaya 0’dan başlanır ama R’da saymaya 1’den başlanır.
x <- c(10, 20, 30, “araba”)
Tek Eleman Seçmek: x[1]
Vektörün 1. elemanını (10) getirir.
Bunu bir değişkene de atayabiliriz: ff <- x[1]
Birden Fazla Eleman Seçmek: İstediğimiz sıraları yine bir c() fonksiyonu ile belirtiriz. x[c(1, 2)]
1. ve 2. elemanı getirir.
Mantıksal Seçim (Filtreleme Mantığı): TRUE olanları getir, FALSE olanları getirme demektir. x[c(TRUE, FALSE, TRUE, TRUE)]
1, 3 ve 4. elemanı getirir; 2. elemanı (FALSE olduğu için) atlar.
Negatif İndeksleme (Hariç Tutma): Eksi işareti “Bunu getirme, geri kalan her şeyi getir” demektir. x[-1]
1. eleman HARİÇ diğerlerini listeler.
5. Vektör İçindeki Veriyi Değiştirmek
Bir vektörün içindeki hatalı bir veriyi düzeltmek veya değiştirmek için, o indeksi seçip yeni değer atayabiliriz.
x[3] <- 5
x vektörünün 3. sırasındaki veriyi siler, yerine 5 yazar.
x
Vektörün son halini ekrana yazdırır.
Özetle
Vektörler R’ın en temel yapı taşıdır. c() fonksiyonu ile oluşturulur, [] ile içindeki verilere erişilir. En kritik nokta, vektörlerin içinde farklı veri tiplerini barındıramayacağını ve hepsini metne dönüştüreceğini unutmamaktır.
