Dr. Kubra Atalay Kabasakal
Kasim 2021
Fonksiyon belli bir gorevi yerine getirmek icin yazilan bir grup komuttur.
Fonksiyonlarin calismasi icin girdilerinin olmasi gerekmektedir. Fonksiyonlar girdileri ile yaptiklari islem sonucunda bir cikti olustururlar.
Fonksiyonlar girdileri o fonksiyonun calismasi icin onceden belirlenen argumanlar ve o argumanlarin degerlerinden olusur.
Fonksiyonlarin kullaniminda uc noktaya dikkat edilmelidir.
Kisisel tanimli fonksiyon yazilmasi sablonu asagidaki gibidir.
fonksiyonadi<- function(argumanlar ve olagan degerleri){
kume parentezi arasinda ise yapilacak islemler yer alir
son satir ya da return() fonksiyonu ile fonksiyon ciktisi duzenlenir.
}
Olusturulan fonksiyon calistirilirken ise fonksiyonadi(argumanlar ve degerleri) seklinde calistirilir.
Kare alma islemi asagidaki sekilde yapilabilir.
## [1] 16
## [1] 16
Bu islem surekli yapilacaksa fonskiyon olarak yazilabilir.
## [1] 16
Farkli dereceden usler alabilen bir fonksiyon yazalim.
## [1] 81
Argumanlardan birine olağan değer girilmesi
#üs alma
üs_al<- function(x,us=2){
return(x^us)
}
üs_al(3) # us argumanin argolagan degeri olan 2 nedeniyle argumana deger girilmediginde kare alir.## [1] 9
Asagidaki fonksiyona 3 ve 4 degerleri girilirse cikti ne olur?
mean() fonksiyonu en sik kullandigimiz fonksiyonlardan biridir.
## [1] 2
R base pakette yer aalan bu fonksiyonu kendiniz de yazabilirsiniz. R’ da deneyim kazandikca, yaptiginiz islemler karmasiklastikca kendi fonskiyonlarinizi yazma ihtiyaci duyacaksiniz.
avg() isiminde vektor ortalamasi hesaplayan fonksiyon yaziniz.
Yazdiginiz fonksiyon ile asagidaki islemi yapiniz.
## [1] 500.5
Yazdiğiniz fonksiyon temel pakette yer alan mean() fonksiyonu ile ayni sonucu verdi mi?
## [1] TRUE
Fonksiyon icinde tanimlanan nesneler calisma alanina kaydedilmezler.
Fonksiyonlar da R nesnesidir.
## [1] "avg" "kare_al" "sayi" "üs_al" "x"
calisma alani, nesnelerin ve bilgilerin kaydedildigi alandir.
ls() ve objects() fonksiyonlari calisma alaninda kayitli nesneleri konsolda gostermektedir.
ls() fonksiyonu ile nesneleri cagirma islemi ozellestirilebilir.
ls.str() fonksiyonu ise hafizadaki nesneleri ayrintilari ile gostermektedir.
Calisma alanindan nesne silmek icin rm("nesneadi") fonksiyonu kullanilabilir.
Calisma alanindaki tum nesneleri silmek icin rm(list=ls()) ya da supurge isareti kullanılabilir.
Konsolda yer alan islemleri silmek icin ise: CTRL + L (clear console) ya da supurge isareti kullanılabilir.
R yazilimi Start/Baslangic menusu uzerinden calistirildiginda calisma dizini C:/Users/<kullanici adi>/Documents
Calisma dizinini sorgulamak icin kullanilacak olan fonksiyon
getwd() (get working directory)
Calisma dizinini degistirmek icin kullanilacak olan fonksiyon
setwd() (set working directory)
Bu islem Rstudio menusu “Session” sekmesinden ya da CTRL +Shift + H tuslari ile de yapilabilmektedir.
Kaydet (Save) ya da CTLR + S dosyadi.R uzantisiyla kaydedilebilmektedir.
Bu sayede tekrar kullanilabilmekte ya da baskalari ile kolaylikla paylasilabilmektedir.
Tum programlar gibi “x” isareti ile ya da q() fonksiyonunu ile sonlandırılabilir.
R’dan cikis yaparken, program calisma alaninin kaydedilip kaydedilmeyecegini sormaktadir.
Eger R’in calisma alanini kaydetmesini istenirse, R calisma dizinine .Rdatauzantili bir dosya kaydeder.
Calisma alanı kaydi icin save.image("dosyaadi") komutu da kullanilabilmektedir.
R’dan cikis yapmadan yapilan islem durdurulmak istenirse, konsol bölümündeki “Stop” isareti veya Esc tusları kullanılabilir.
RSiteSearch ("sample.int") "ltm reliability gibi fonskiyon isimler argumansiz kullanirlirsa icerigi gorunur. Karmasik gorunse de siz de yapabilirsiniz. Ogrenmek icin iyi bir yoldur.İki farklı kişisel tanımlı fonksiyon yazabilirsiniz. Fonksiyon1, kullanicinin girdiği harfle başlayan calisma alanindaki nesneleri listelesin. Fonksiyon2, kullanicinin girdiği harfi içeren calisma alanindaki nesneleri listelesin. Eğer kendinizi biraz da zorlamak isterseniz, bu iki işlevi birlikte yapan bir fonksiyon yazmayı deneyebilirsiniz.
Kitap Bölüm 1 alıştırmalarını tamamlayiniz.