Dizi (array), çok boyutlu verileri tutabilen bir veri yapısıdır. R'de diziler, iki veya ikiden fazla boyutlu verileri tutabilen nesnelerdir. Örneğin, kare matrisler iki satır ve iki sütun içerebilir ve boyut beşe çıkabilir. Diziler yalnızca benzer türde veri tiplerine sahip değerleri saklayabilir. Veriler birden fazla boyutlu olabilir; satırlar ve sütunlar ile belirli bir uzunluğa sahip boyutlardan oluşabilir.
Bir Dizinin Oluşturulması
array() fonksiyonu, argüman olarak sayılardan oluşan bir vektör ve boyut ('dim') alarak bir dizi oluşturur.
Aşağıda, 'array1' ve 'array2' adında iki vektörün oluşturulduğu bir örnek görelim.
vector1 = c (5, 10, 15,20)
vector2 = c (25, 30, 35, 40, 45, 50,55,60)
Yukarıdaki iki vektörü, boyutu 4 * 4 kabul edilen bir diziye girdi olarak alabilir ve iki matris ya da boyutlu veri oluşturabilirsiniz.
final = array (c (array1, array2),dim =c(4,4,3))
print (final)
"matrix.names" kullanarak dizimizi "Arr1" ve "Arr2" olarak yeniden adlandıralım. Ayrıca, satır adları ("row1","row2"), sütun adları ise ("column1","column2","column3") olarak değiştirilecektir. Matrisin boyutu 2 satır ve 3 sütundur.
array1 = c (9 , 18 )
array2 = c (27,36)
r.names = c ("column1","column2","column3")
c.names = c ("row1","row2")
m.names = c ("Arr1", "Arr2")
final = array (c (array1,array2), dim=c (2,3,2), dimnames=list (c.names, r.names, m.names))
print(final)
Yukarıdaki kodun çıktısı aşağıdadır; iki satır ve üç sütun bulunmaktadır. Ayrıca, sütundaki değer bitince tekrar eder:
Bir dizi, çok boyutlu biçimdeki öğelerden oluşur ve her öğeye işlem yapmak için erişilebilir. Öğeler '[]' kullanılarak indekslenebilir; matris benzeri dizilerde satır ve sütunlar vardır ve şu şekilde indekslenebilir: mat[row, column]
Aşağıdaki örnekte, dizi 1'den 9'a kadar vektör girdisi içerir. 1'den 9'a kadar değerlerin yer aldığı yalnızca üç satır ve üç sütun vardır. 'c.names)' vektörlerden ('c1', 'c2', 'c3') oluşan yeni sütun adlarıdır ve 'r.names' de ('r1', 'r2', 'r3') vektörü olan yeni satır adlarıdır.
a1= c (1,2,3,4)
a2= c (5,6,7,8,9)
r.names = c ("c1","c2","c3")
c.names = c ("r1","r2","r3")
m.names = c ("first")
arr = array (c (a1,a2), dim=c (3,3,1), dimnames=list (c.names, r.names, m.names))
print(arr)
, , first
c1 c2 c3
r1 1 4 7
r2 2 5 8
r3 3 6 9
Yukarıdaki kodun çıktısı aşağıdadır:
, , first
c1 c2 c3
r1 1 4 7
r2 2 5 8
r3 3 6 9
1'den 9'a kadar olan matrislerin 3 3 boyutunda (satır sütun) üretildiğini ve satır ile sütun adlarının değiştirildiğini görebilirsiniz.
Aşağıdaki örneklerle dizideki öğelerin nasıl çıkarılabileceğine bakalım.
Yukarıdaki kodun çıktısı 7'dir. 'arr[1,3,1]' içinde 1. satır, 3. sütun ve 1, ilk 'arr' dizisinin seçildiğini belirtir.
1'e erişmek için, 'arr[1,1,1]' içinde 1. satır, 1. sütun ve 1, ilk 'arr' dizisinin seçildiğini belirtir.
arr[1,1,1]
1
Yukarıdaki kodun çıktısı 1'dir.
Aynı anda birden fazla değere erişmek için, istediğiniz aralığı belirtmeniz gerekir.
arr[1:2,1:2,1]
c1
c2
r1
1
4
r2
2
5
Yukarıdaki kodun çıktısı aşağıdadır; burada 2 satır, 2 sütun içeren ve 1'in ilk 'arr' dizisini belirttiği değerler seçilmiştir:
c1 c2
r1 1 4
r2 2 5
Tüm 'arr' dizisine aşağıdaki sözdizimiyle erişebilirsiniz; 'arr[ , ,1]' tüm satır ve sütunların virgülle ayrılarak (boşlukla gösterilir) dahil edilmesini belirtir. 1 ise çıkarılacak 'arr' dizisini belirtir.
arr[ , ,1]
c1
c2
c3
r1
1
4
7
r2
2
5
8
r3
3
6
9
Yukarıdaki kod, tüm öğelerin bulunduğu aşağıdaki çıktıyı verir:
c1 c2 c3
r1 1 4 7
r2 2 5 8
r3 3 6 9
Aşağıdaki kodla ikinci satırın tamamını alabilirsiniz; arr[2, ,1] boşlukla ikinci satırı alır ve 1, çıkarılacak 'arr' dizisini belirtir.
arr[2,,1]
c1
2
c2
5
c3
8
Yukarıdaki kod, aşağıdaki çıktıyı verir ve ayrıca c1,c2,c3'ü yazdırır.
c1 2
c2 5
c3 8
Aşağıdaki kodla ikinci sütunun tamamını alabilirsiniz; arr[,2,1] ifadesinde boşlukla 2, ikinci sütunu; 1 ise çıkarılacak 'arr' dizisini belirtir.
mat[ ,2,1]
r1
4
r2
5
r3
6
Yukarıdaki kod, aşağıdaki çıktıyı verir ve ayrıca r1,r2,r3'ü yazdırır.
r1 4
r2 5
r3 6
Matris Oluşturma ve Toplama
'arr[ , ,1]' ifadesinden mat1 ve mat2 adında matrisler oluşturalım; böylece 'arr'deki tüm satır ve sütunlar kopyalanır.
mat1 = arr[,,1]
mat2 = arr[,,1]
c1 c2 c3
r1 2 8 14
r2 4 10 16
r3 6 12 18
'mat1' ve 'mat2' adlı iki matrisi toplayın ve sonucu final değişkenine saklayın. Çıktı da yazdırılır.
final <- mat1+mat2
print(final)
Aşağıdaki çıktı, mat1 ve mat2'nin her bir satır ve sütununun birbirine eklendiğini gösterir.
c1 c2 c3
r1 2 8 14
r2 4 10 16
r3 6 12 18
apply()
'apply()', kodu daha kolay ve verimli yazmaya yardımcı olan çeşitli fonksiyonlara sahip R paketlerinden biridir. Aşağıda, iki farklı dizinin toplamını hesaplamak için nasıl kullanılabileceğini göreceksiniz.
apply() için sözdizimi şöyledir: apply(x, margin, function)
Yukarıdaki argümanların anlamı: x: Matrisler gibi bir dizi veya iki boyutlu veriler. margin: Uygulanacak fonksiyonun hangi kenarda (margin) kullanılacağını belirtir; satırlar için c(1), sütunlar için c(2) ve her ikisi için c(1,2). function: Verilen veriler üzerinde uygulanacak R yerleşik veya kullanıcı tanımlı fonksiyon.
Aşağıdaki kodla uzunluğu üç olan 'array1' ve uzunluğu altı olan 'array2' adlı vektörler oluşturalım.
array1 = c(5,10,15)
array2 = c(15,20,25,30,35,40)
Aşağıda, 'array()' fonksiyonunun 'array1' ve 'array2' adlı iki vektörü kabul ettiğini; 3 satır, 3 sütun boyutunda 2 matris oluşturulduğunu ve 'my. Array' içine saklandığını görebilirsiniz.
Aşağıda 'apply()', sütun bazında iki matrisin toplamını hesaplamak için kullanılmıştır.
final <- apply(my.Array, c(2), sum)
print(final)
[1] 60 120 210
Yukarıda margin için c(2) kullanıldığını görebilirsiniz; 'my. Array' içindeki matrisin öğeleri sütun bazında toplanarak aşağıdaki çıktı elde edilir.
60 120 210
Son olarak, aşağıda 'apply()' satır bazında iki matrisin toplamını hesaplamak için kullanılmıştır.
final <- apply(my.Array, c(1), sum)
print(final)
[1] 100 130 160
Yukarıda margin için c(1) kullanıldığını görebilirsiniz; 'my. Array' içindeki matrisin öğeleri satır bazında toplanarak aşağıdaki çıktı elde edilir.
100 130 160
Tebrikler
Tebrikler, bu eğitimin sonuna geldiniz!
R'deki Diziyi, oluşturulmasını, örneklerle birlikte bir dizide indekslemeyi; ayrıca matrislerin oluşturulması ve toplanmasını ve apply() fonksiyonunu öğrendiniz.
R hakkında daha fazla bilgi edinmek isterseniz, DataCamp'in Introduction to R kursunu alın.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!