yaprak_uzunlugu <- c(2.3, 3.4, 4.5, 1.2, 3.4,
3, 1.8, 6.3, 2.1, 5)
9 Matrisler
Hatırlarsanız vektörler (Bölüm 8), sadece tek bir veri tipini içeren bir boyutlu veri yapılarıydı.
Ancak gerçek veri analizi işlemlerinde iki boyutlu veri yapılarına ihtiyacımız olabilir. Mesela verimiz satır ve sütünlardan oluşabilir.
Bu durumda matris veri yapılarını kullanıyoruz. Matrisler de aynı vektörler gibi tek bir veri tipini kapsayabilir. Aşağıda örnek bir matris görebilirsiniz (Tablo 9.1).
Bir önceki derste kullandığımız yaprak_uzunlugu
isimli vektörden bir matris oluşturalım.
Bu vektörden bir matris oluşturmak istersek öncelikle matrix()
fonksiyonunu kullanarak, satır (nrow)
ve sütun (ncol)
sayılarını belirlememiz gereklidir.
matrix(yaprak_uzunlugu, nrow=5, ncol=2)
[,1] [,2]
[1,] 2.3 3.0
[2,] 3.4 1.8
[3,] 4.5 6.3
[4,] 1.2 2.1
[5,] 3.4 5.0
Evet, sonuç olarak 5 satır ve iki sütundan oluşan ilk matrisinizi oluşturdunuz.
Satır ve sütun sayılarının çarpımı, vektörün uzunluğunu vermeli. Yani 10 tane elemana sahip bir vektörden, 2x5 ya da 5x2 boyutlarında matrisler elde edebilirsiniz.
9.1 Matris boyutları
Matris boyutlarını öğrenmek için üç farklı fonksiyon kullanabilirsiniz:
-
dim
bir matrisin satır ve sütun sayılarını geri döndürür. -
nrow
sadece satır sayısını geri döndürür. -
ncol
sadece sütun sayısını geri döndürür.
Şu şekilde:
9.2 Satır ve Sütün isimleri
İstersek matrislerimize satır ve sütun isimleri atayabiliriz. Buradaki örnek oldukça rastgele oldu ancak konunun anlaşılması için önemli.
Bunun için ise iki farklı fonksiyon daha kullanıyoruz:
rownames
colnames
9.3 Matrislerle çalışmak
Matrisler’de de indis kullanabiliriz. Bu sayede matris içerisindeki elemanlara erişebiliriz. Ancak burada iki tane eleman kullanmamız gerekecek. Bir tanesi satır için, diğeri ise sütun için.
Mesela, örnek matirisimizde 4. satır 2. sütundaki elemana erişmek isteyelim:
ornek_matris[4,2]
[1] 2.1
Birinci eleman satır sayısını, ikinci eleman ise sütun sayısını ifade etmektedir.
Sadece ikinci sütunda bulunan, 2 ve 4 arasındaki satırlara erişmek istersek:
ornek_matris[2:4,2]
Satir2 Satir3 Satir4
1.8 6.3 2.1
Dikkat ederseniz bu örnekte 2:4
yapısını kullandık. Bu bize 2, 3, 4 vektörünü geri döndürecektir. Sütun için ise sadece 2 kullandık.
Sadece 4. satırı geri döndürmek için:
ornek_matris[4,]
Sutun1 Sutun2
1.2 2.1
Sütun indisini kullanmazsak, bütün sütun elementlerini geri döndürür.
Sadece birinci sütunu geri döndürmek için ise:
ornek_matris[,1]
Satir1 Satir2 Satir3 Satir4 Satir5
2.3 3.4 4.5 1.2 3.4
9.4 Matrislerde mantıksal işlemler
Vektörlerde yaptığımız mantıksal işlemleri matrislerde de yapabiliriz.
Mesela ikinci sütunda, 5’den büyük satırları geri döndürelim:
ornek_matris[,2] > 5
Satir1 Satir2 Satir3 Satir4 Satir5
FALSE FALSE TRUE FALSE FALSE
Dikkat ederseniz 5’den büyük olan değerleri bize TRUE
olarak gösterdi. Bu mantıksal vektörü tekrar bir indis olarak verelim:
ornek_matris[ornek_matris[,2] > 5, 1]
[1] 4.5
Dikkat edin mantıksal vektörü sadece satır indisi olarak kullandık! Yoksa hata alırız.
Ya da bütün matris içerisinde bir karşılaştırma yapabiliriz. Bütün matris içinde 3’den büyük olan değerleri geri döndürelim:
ornek_matris > 3
Sutun1 Sutun2
Satir1 FALSE FALSE
Satir2 TRUE FALSE
Satir3 TRUE TRUE
Satir4 FALSE FALSE
Satir5 TRUE TRUE
Bunu tekrar bir indis olarak geri kullanalım:
ornek_matris[ornek_matris > 3]
[1] 3.4 4.5 3.4 6.3 5.0
Gördüğünüz gibi bize bir vektör geri döndürdü. Çünkü tek indis kullandık. Bu özellik matrislere özgüdür.