Bu haftaki dersimizde fonksiyon konusunda üzerinde durduk. Fonksiyonlar, belli bir görevi yerine getirmek için bir araya getirilen komutlar setidir. Örneğin, rnorm fonksiyonu istediğimiz sayıda rastgele veri üretmemizi sağlar. n argümanı kaç veri üretilmesini istediğimizi, mean ve sd argümanı ise sırasıyla ortalama ve standart sapma bilgilerini içerir. Bu fonskiyon için n argümanı zorunludur, eğer mean ve sd argümanı belirtilmezse ortalaması 0, satandart sapması 1 olan veri seti yazdırılır.

rnorm(n = 5, mean = 10, sd = 2)
## [1]  9.908157 11.205005  8.021662 11.140635  8.638187

5 tane ortalaması 10, standart sapması 2 olan veri seti üretmiş olduk. Fonksiyonların argümanlarının neler oldğunu öğrenmek için yardım sayfalarını kullanabiliriz.

?rnorm()

Kişisel Fonksiyonlar

Daha sonra kişisel fonksiyonlarımızı nasıl oluşturabileceğimizi konuştuk. Aşağıda bir sayının küpünü alan bir fonksiyon yazdım.

# kare alma fonksiyonu
kup_al <-  function(sayi){
  return(sayi*sayi*sayi)
  }
kup_al(4)
## [1] 64
#üs alma
Us_al<-  function(x,us){
  return(x^us)
  }
Us_al(3,4)
## [1] 81

mean fonksiyonu sıkça kullandığımız fonksiyonlardan biridir.

x <-  c(4,2,6)
mean(x)
## [1] 4

Aşağıda ortalama hesaplamaya yarayan bir fonksiyon yazacağım.

avg <- function(x) {
  return(sum(x) / length(x))
}
x <- 1:20
avg(x)
## [1] 10.5
mean(x)
## [1] 10.5
identical(avg(x),mean(x))
## [1] TRUE

Fonksiyonların ardından vektörlerle çalıştık.

Sayısal Vektörler

(sayisal_vektor <-  c(1,2,3))
## [1] 1 2 3

Vektör uzunluğunu öğrenmek için lenght() , türlerini anlamak için class fonksiyonlarını kullanabiliriz.

Vektörler Arasında Yapılabilecek İşlemler

Aynı sayıda eleman içeren iki vektör arasında temel matematiksel işlemler yapılabilir.

x <- c(3,4,5)
y <- c(1,2,3)
x+y
## [1] 4 6 8
x <- c(3,4,5)
y <- c(1,2,3)
x-y
## [1] 2 2 2

Eğer iki vektörde yer alan eleman sayıları aynı olmazsa eleman sayısı az olan vektördeki elemanlar tekrar eder.

x <- 1:9
y <- c(1,2,3)
# vektör eleman sayıları farklı mı?
length(x)/length(y)
## [1] 3
x+y
## [1]  2  4  6  5  7  9  8 10 12
x/y
## [1] 1.0 1.0 1.0 4.0 2.5 2.0 7.0 4.0 3.0

Vektörlerdeki Fonksiyonlar

x vektörü oluşturalım.

x <- 1:10

x deki elemanların toplamı:

sum(x)
## [1] 55

x deki elemaların çarpımı

prod(x)
## [1] 3628800

x deki elemanların küçükten büyüğe sıralanması:

sort(x)
##  [1]  1  2  3  4  5  6  7  8  9 10

x deki elemanların standart sapmasının hesaplanması:

sd(x)
## [1] 3.02765

x deki en büyük verinin gösterilmesi:

max(x)
## [1] 10

gibi fonksiyonlar yardımıyla bulunabilir.

Vektörden Eleman Seçme

Veriden bazı elemanları aşağıdaki yollarla seçebiliriz.

ad  <-  c("Ali","Elif","Su","Deniz","Aras",
          "Berk","Can","Ece","Efe","Arda")

ad vektörünün 1. elemanı:

ad[1]
## [1] "Ali"

ad vektörünün 1.,6.,7., elemanı :

ad[c(1,6,7)]
## [1] "Ali"  "Berk" "Can"

ad vektörünün 4. eleman haricindeki elemanları:

ad[-4]
## [1] "Ali"  "Elif" "Su"   "Aras" "Berk" "Can"  "Ece"  "Efe"  "Arda"

gibi fonksiyonları kullanarak seçebiliriz.