Fonksiyonlar

Fonksiyonlar, komut dizileridir ve argümanlardan oluşur. Bunu bir benzetme ile açıklayalım. Fonksiyon, bir komutanın askerlere verdiği emir olsun. Argümanlarsa bu emire uyacak askerler. Fonskiyon gövdesi ise bu askerlerin yapması gereken görev.

emir(asker1, asker2) {

Askerlerin yapması gereken komut

}

Fonksiyon(argümanlar) {

fonskiyon gövdesi

}

Örnek bir fonksiyon

sayininkaresinibul(sayi) {

sayi*sayi

}

sayininkaresinibul(5) yazarsanız 5’in karesini hesaplayacaktır.

Önemli noktalar

Hazır veya oluşturduğunuz bir fonksiyonu kullanırken argümanların sırasına dikkat etmelisiniz.

Argümanların olağan (default) değerleri: Birinci asker için hangi kişiyi seçeceğinizi belirlemezseniz, fonksiyonun ilk halindeki defult argüman değeri çalışır. Yani Ali diye bir askeri seçmezseniz, o işi eskiden beri yapan mehmet otomatik olarak bu komutu gerçekleştirebilir.

Default argüman örneği

nnorm fonksiyonu normal dağılıma sahip sayı kümesi oluşturmanızı sağlar. Bu sırada argümanları arasında eleman sayısı, ortalaması ve standart sapmasını argüman olarak oluşturur. İsterseniz bu argüman değerlerini değiştirebilirsiniz. Bir değişiklik yapmazsanız default değerleri olan ortalaması 0 ve SD’si 1 kullanılır.

rnorm(n, mean, sd)

rnorm(5, 3, 1 ) = rnorm(n=5, mean=3, sd= 1)

Bu örnek fonksiyon her çalıştığında farklı sayılar üretecektir. Her seferinde aynı sayıların oluşmasını sağlamak için set.seed() fonksiyonu eklenebilir.

set.seed(231) rnorm(5, 3, 1)

kare_al <- function(sayi){ sayi*sayi } kare_al(4)

Fonsksiyon içinde return kullanımı

Hocam ben bu return kullanımı tam anlamadım ama anladığım kadarıyla bir açıklama yazdım.

Return, geri döndürmak demektedir. Yani fonksiyon çıktısı olarak size ne gelsin ne geri dönsün gibi.

fonk2 <- function(x,y) { x+y return((x+y)*(x+y)) }

fonk2(2,3)

yazarsak asıl istediğimiz şey 2 ile 5’in toplamının karesi sonucu çıktı olarak gelir. İf komutu ile kullanıldığında ileride fonkiyonun nerede durması gerektiğini de belirtiyor.

Vektör R’da sayı dizileri direkt yanyana yazılamıyor. Bunları vektör şeklinde yazmak gerek. mesela 1,2,3 sayı dizisinin ortalamasını hesaplamak istiyoruz. Bu sayı dizisini c() ile bir vektöre benzetiriz.

x <- c(1, 2, 3) doğru

x <- (1, 2, 3) yanlış

mean(x)

R Çalışma Alanı

Bazen çalışma alanınız uzayıp karışabilir. Bu sırada şimdiye kadar kullanılan objeleri gözden geçirmek isteyebilirsiniz. Bu objehleri görebilmek için kullanabileceğiniz fonskiyonlar:

ls()

objects()

Aralarında bir fark yok. İstediğinizi kullanabilirsiniz.

objects_to_remove <-ls(pattern = “1”) : ‘1’ karakterini içeren nesneleri seçip listelemek

rm(list = objects_to_remove) : “objects_to_remove” yani içinde 1 olan nesneler silinir.

Bazen nesnelerin daha ayrıntılı bilgisine yani yapısına ulaşmak isteyebilirsiniz. Bu durumda yapı anlamında gelen structer kelimesinin kısaltması kullanılır.

ls.str()

rm(nesne_adı) : nesneyi siler.

rm(list = ls()) : ortamdaki tüm nesneler silinir.

R Çalışma Dizini

getwd() : burada çalışma dizinini çok anlamadım. Anladığım kadarıyla dosyanın nereye kayıtlı oldğunu gösteriyor.

setwd() : Çalışma dizinini değiştirmek için kullanılacak olan fonksiyon

kitap ödevi

soru 1 8+12

88 #fonksiyon ile de soyle yapilabilir: kare_al<- function(sayi){sayisayi} kare_al(8)

(5+5)/2

sqrt(36)

soru 3 r1=5 alan1<- function(r1){3.14r1r1} alan1(5) r2=10 alan2<- function(r2){3.14r2r2} alan2(10) r3=15 alan3<- function(r3){3.14r3r3} alan3(15) alan1(5) alan1(5)<alan2(10)

ls()

rm(list = ls())

soru 4

z_puani<- function(x,y){(56-x)/y}

z_puani(40,4) z_puani(40,8) z_puani(40,16) z_puani(40,32)

soru 5,6,7,8

install.packages(“data.table”) library(data.table) getwd() setwd()

soru 9

set.seed(1000) rnorm(n=100, mean=5, sd=10)

set.seed(1000)
dagilim <- rnorm(n=100, mean=5, sd=10) ortalama <- mean(dagilim) standart_sapma<- sd(dagilim)

hist(dagilim, main=“Dagilim Histogram??”, xlab=“Degerler”, ylab=“Frekans”, col=“blue”,
border=“black”)