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()
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.
(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.
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
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.
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.