Dr. Kubra Atalay Kabasakal
Kasım 2021
Vektorler (vector) tek boyutlu veri yapilari iken, matrisler (matrix) ve veri vetleri (dataframe) dikdortgensel verilerdir.
Matrisler ve veri setleri satir ve sutunlardan olusan iki boyutlu verilerdir.
Matrisler, vektorler gibi tek bir veri turu icerirebilir.
En basit matris olusturma yolu, esit uzunluktaki vektorleri birlestirerek yapilabilir.
satir bazinda birlestirme rbind()
sutun bazinda birlestirme cbind()
boy <- c(160,165,170,155,167,162,169,158,160,164)
kilo <- c(55,55,57,50,48,65,58,62,45,47)
rmatris <- rbind(boy,kilo)
dim(rmatris) # 2 x 10 ## [1] 2 10
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## boy 160 165 170 155 167 162 169 158 160 164
## kilo 55 55 57 50 48 65 58 62 45 47
## [1] "matrix" "array"
## [1] 10 2
## boy kilo
## [1,] 160 55
## [2,] 165 55
## [3,] 170 57
## [4,] 155 50
## [5,] 167 48
## [6,] 162 65
## [7,] 169 58
## [8,] 158 62
## [9,] 160 45
## [10,] 164 47
## [1] "matrix" "array"
Matris olusturmanin diger bir yolunu da matrix() fonksiyonunu kullanmaktadir.
## [,1]
## [1,] NA
nrow satir sayisi
ncol sutun sayisi
byrow verilerin nasil siralanacagi
dimnanes boyut isimleri
byrow() argumani kullanimi## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 5 9 13 17
## [2,] 2 6 10 14 18
## [3,] 3 7 11 15 19
## [4,] 4 8 12 16 20
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 2 3 4 5
## [2,] 6 7 8 9 10
## [3,] 11 12 13 14 15
## [4,] 16 17 18 19 20
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 5 9 13 17
## [2,] 2 6 10 14 18
## [3,] 3 7 11 15 19
## [4,] 4 8 12 16 20
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 5 9 13 17
## [2,] 2 6 10 14 18
## [3,] 3 7 11 15 19
## [4,] 4 8 12 16 20
dim() fonksiyonu ile vektor matrise donsuturelebilir.
## [,1] [,2] [,3] [,4] [,5]
## [1,] 40 72 22 82 76
## [2,] 35 58 59 85 17
## [3,] 5 29 31 92 68
## [4,] 96 70 45 89 52
İslem tersine vector() fonksiyonu ile donusturulebilir.
## [1] 40 35 5 96 72 58 29 70 22 59 31 45 82 85 92 89 76 17 68 52
Matrisler tek tur veri icerebilir. Örnegin sayisal verilerden olusan bir matrise karakter veriler eklendiginde, vektorlerde oldugu gibi R otomatik duzeltmeye giderek
## [,1] [,2] [,3] [,4] [,5]
## [1,] 40 35 5 96 72
## [,1] [,2] [,3] [,4] [,5]
## [1,] "40" "35" "5" "96" "72"
## [2,] "m1" "m2" "m3" "m4" "m5"
## [,1] [,2] [,3] [,4] [,5]
## [1,] "m1" "m2" "m3" "m4" "m5"
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] "m1" "m2" "m3" "m4" "m5" "1"
Vektorler matrix() fonksiyonu ile birleştirilebilir
boy <- c(160,165,170,155,167,162,169,158,160,164)
kilo <- c(55,55,57,50,48,65,58,62,45,47)
boykilo <- matrix(c(boy,kilo),nrow = 10, ncol = 2)Matrislerin satir ve sutunlari isimlendirilebilir. Isımlendirme yollarindan biri dimnames() argumaninin kullanilmasidir.
ad <- c("Ali","Elif","Su","Deniz","Aras","Berk","Can","Ece","Efe","Arda") # satir isimleri
sutunisim <- c("boy","kilo") # sutun isimleri
(boykilo <- matrix(cbind(boy,kilo),nrow = 10, ncol = 2,
dimnames = list(ad,sutunisim)))## boy kilo
## Ali 160 55
## Elif 165 55
## Su 170 57
## Deniz 155 50
## Aras 167 48
## Berk 162 65
## Can 169 58
## Ece 158 62
## Efe 160 45
## Arda 164 47
Matris boyut isimlendirme islemi matris olusturulduktan sonra da dimnames() fonksiyonu ile yapilabilir.
dimnames() fonksiyonu
## boy kilo
## Ali 160 55
## Elif 165 55
## Su 170 57
## Deniz 155 50
## Aras 167 48
## Berk 162 65
## Can 169 58
## Ece 158 62
## Efe 160 45
## Arda 164 47
İsimlendirme icin diger bir yol ise colnames() ve rownames() fonksiyonlarinin kullanilmasidir.
boykilo2 <- matrix(cbind(boy,kilo),nrow = 10, ncol = 2)
# sadace sutunlara isim verilmesi
colnames(boykilo2) <- sutunisim
boykilo2## boy kilo
## [1,] 160 55
## [2,] 165 55
## [3,] 170 57
## [4,] 155 50
## [5,] 167 48
## [6,] 162 65
## [7,] 169 58
## [8,] 158 62
## [9,] 160 45
## [10,] 164 47
## boy kilo
## Ali 160 55
## Elif 165 55
## Su 170 57
## Deniz 155 50
## Aras 167 48
## Berk 162 65
## Can 169 58
## Ece 158 62
## Efe 160 45
## Arda 164 47
Sutun elemanlari eklenmesi cbind() ile
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
Satir elemanlari eklenmesi rbind() ile
## [,1] [,2]
## [1,] 8 3
## [2,] 5 6
## [,1] [,2] [,3]
## [1,] 8 3 8
## [2,] 5 6 3
Asagidaki matrisi olusturacak komutu yaziniz.
## c1 c2 c3 c4 c5
## r1 10 20 30 40 50
## r2 60 70 80 90 100
## r3 110 120 130 140 150
## r4 160 170 180 190 200
Matrisi bir sayi ile toplama islemi, matris ile aynı boyutta her elemani belirtilen sayi olan matrisle toplama islemidir.
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
## [,1] [,2]
## [1,] 11 13
## [2,] 12 14
Aynı boyutta iki matrisi toplama
## [1] 2 2
## [,1] [,2]
## [1,] 10 10
## [2,] 10 10
## [1] 2 2
## [,1] [,2]
## [1,] 11 13
## [2,] 12 14
Bir matrisi tek elamanli bir vektor ile carpma
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 2 3 4 5
## [2,] 6 7 8 9 10
## [,1] [,2] [,3] [,4] [,5]
## [1,] 2 4 6 8 10
## [2,] 12 14 16 18 20
Bir matrisi cok elamanli bir vektor ile carpma
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 2 3 4 5
## [2,] 6 7 8 9 10
## Warning in m3 * 1:4: uzun olan nesne uzunluğu kısa olan nesne uzunluğunun bir
## katı değil
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 6 3 12 5
## [2,] 12 28 16 36 20
Ayni boyutta iki matrisin carpimi
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
## [,1] [,2]
## [1,] 11 13
## [2,] 12 14
## [,1] [,2]
## [1,] 11 39
## [2,] 24 56
Matris carpimi yapmak icin %*% operatoru ile yapilabilir.
## [,1] [,2]
## [1,] 47 55
## [2,] 70 82
Matrisin transpozu ise t() fonksiyonu ile alinir.
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
Bir matrisin transpozu ile carpimi
## [,1] [,2]
## [1,] 10 14
## [2,] 14 20
Matrislerde satir ve sutun bazinda islem yapabilecek bazi fonksiyonlar:
Satir ortalamalari rowMeans()
Sutun ortalamalari colMeans()
Satir toplamlari rowSums()
Sutun toplamlari colSums()
Matrisin determinantı det()
Matrisin ozdegeri eigen()
Ayrica matrixcalc ve matlib paketlerinde cok sayida fonksiyon bulunur.
Matrisinin sutun ortalamalarinin hesaplanmasi
## boy kilo
## 163.0 54.2
Matrisinin satir ortalamalarinin hesaplanmasi
## Ali Elif Su Deniz Aras Berk Can Ece Efe Arda
## 107.5 110.0 113.5 102.5 107.5 113.5 113.5 110.0 102.5 105.5
m1 matrisine bireylerin BKI degerlerini yeni bir sutun olarak ekleyiniz. BKI vucut agirliginizin metre cinsinden boy uzunlugunun karesine bolunmesi ile elde edilir. Islemi yapmadan once calisma alanindan boy ve kilo nesnelerini kaldiriniz. Islemi sadece boykilo matrisi uzerinden gerceklestiriniz.
## boy kilo
## Ali 160 55 21.48
## Elif 165 55 20.20
## Su 170 57 19.72
## Deniz 155 50 20.81
## Aras 167 48 17.21
## Berk 162 65 24.77
## Can 169 58 20.31
## Ece 158 62 24.84
## Efe 160 45 17.58
## Arda 164 47 17.47
Matris elemanlari indekslerle, boyut isimleriyle ve mantiksal operatorlerle secilebilir.
Matrislerden satir elemani secimi matris [satirindeks, ]
Matrislerden sutun elemani secimi matris [ ,sutunindeks ]
Matrislerden satir ve sutun elemani secimi matris [satirindeks,sutunindeks ]
İsimlendirilmis matrislerde indekslerle secim yapilabilecegi gibi indekslerle de secim yapilabilir.
Indeksle secim
## boy kilo
## 160 55
Isımle secim
## boy kilo
## 160 55
Matrisinin birinci ve ucuncu satir elemanlarinin secilmesi
## boy kilo
## Ali 160 55
## Su 170 57
Matrisinin birinci ve ucuncu satir elemanlarinin secilmesi
## boy kilo
## Ali 160 55
## Su 170 57
Ucuncu satirda yer alan ogrencinin boyunun secilmesi
## [1] 170
Ucuncu satirda yer alan ogrencinin boyunun secilmesi
## [1] 170
Matrislerse sutun secimi
## Ali Elif Su Deniz Aras Berk Can Ece Efe Arda
## 160 165 170 155 167 162 169 158 160 164
Matrislerse sutun secimi
## Ali Elif Su Deniz Aras Berk Can Ece Efe Arda
## 160 165 170 155 167 162 169 158 160 164
Haric tutulma islemi ise - opertoru ile yapilabilir.
Matrisin birinci satirinin haric tutulmasi
## boy kilo
## Elif 165 55
## Su 170 57
## Deniz 155 50
## Aras 167 48
## Berk 162 65
## Can 169 58
## Ece 158 62
## Efe 160 45
## Arda 164 47
Matrisin birinci ve besincei satirinin haric tutulmasi
## boy kilo
## Elif 165 55
## Su 170 57
## Deniz 155 50
## Berk 162 65
## Can 169 58
## Ece 158 62
## Efe 160 45
## Arda 164 47
Birinci sutunun haric tutulmasi
## Ali Elif Su Deniz Aras Berk Can Ece Efe Arda
## 55 55 57 50 48 65 58 62 45 47
Mantiksal ifadeler kullanarak da matristen eleman secimi yapilabilir.
Boyu 160cm’den uzun olan kisilerin kilolarinin secilmesi
## Elif Su Aras Berk Can Arda
## 55 57 48 65 58 47
Boyu 160cm’den uzun olanlar kisilerin boy ve kilolarinin secilmesi
## boy kilo
## Elif 165 55
## Su 170 57
## Aras 167 48
## Berk 162 65
## Can 169 58
## Arda 164 47
islem adinda iki argumanli bir fonksiyon yaziniz. Yazdiginiz fonksiyon girilen iki degerin toplamini, farkini, carpimini ve bolumunu versin. Yazdiginiz fonksiyonun asagidaki ciktilari vermesi beklenmektedir.
## [1] 4.0000000 -2.0000000 3.0000000 0.3333333
## [1] 6.0 -2.0 8.0 0.5
## [1] 0 0 0 NaN
Atar, B., Atalay Kabasakal, K, Ünsal Özberk, E. B., Özberk, E. H. Ve Kıbrıslıoğlu Uysal, N. (2020). R ile Veri Analizi ve Psikometri Uygulamaları, Editör, Pegem Akademi, Ankara.
ODEV
(Kitap - Bölüm1 - Alıştırmalar)
swirl package - learn R in R