Kurs

'ifelse()' fonksiyonu, R'deki if-else ifadesinin alternatif ve kısaltılmış biçimidir. Ayrıca işlemi hızlandıran 'vektörleştirilmiş' tekniği kullanır. Vektör değerlerinin tümü, birden çok kez tek tek değerler almak yerine, tek seferde argüman olarak alınır.
Sözdizimi
R'de 'ifelse()' fonksiyonunun sözdizimi şöyledir:
ifelse(logical_expression, a , b)
'ifelse' içindeki argümanlar şunları ifade eder:
1.logical_expression: Girdi olarak bir vektörü belirtir; çıktı olarak aynı boyutta bir vektör döndürür.
2. a: logical_expression TRUE olduğunda çalışır.
3. b: logical_expression FALSE olduğunda çalışır.
Örnek (Tek veya Çift)
Aşağıdaki örnekte, kodun sayıların tek mi çift mi olduğunu nasıl kontrol ettiğine hızlıca bakalım. 'v', bir sayı listesinden oluşan vektördür. 'ifelse' fonksiyonunda 'v%%2==1' ifadesi, 'v' içindeki her sayının kalanının bir olup olmadığını kontrol eder; TRUE olduğunda "odd" yazdırır, aksi durumda FALSE için "even" yazdırır.
v = c(14,7,6,9,2)
ifelse(v %% 2 == 1,"odd","even")
- 'even'
- 'odd'
- 'even'
- 'odd'
- 'even'
Yukarıdaki kod şu çıktıyı verir:
'even' 'odd' 'even' 'odd' 'even'
Kodun dahili işleyişi c(FALSE,TRUE,FALSE,TRUE,FALSE) şeklinde mantıksal bir vektör üretir. İlk parametre c("odd","odd","odd","odd","odd") şeklinde bir dize vektörü oluşturur; ikinci parametre ise c("even',"even","even","even","even") şeklinde bir dize vektörü üretir. Son olarak, bireysel vektör öğeleri TRUE olduğunda 'odd'a, 'FALSE' ise 'even'a dönüşür.
Örnek (Geçti veya Kaldı)
Aşağıdaki örnek, 'ifelse()' fonksiyonunun bir DataFrame ile birlikte kullanımını göstermektedir. Bir Öğrenci 40'ın üzerinde not alırsa 'Pass' (Geçti), aksi halde sınavda 'Fail' (Kaldı) olarak değerlendirilecektir.
Hızlıca bir Veri Çerçevesi oluşturalım: "Student" adlı sütunda ("Ron", "Jake", "Ava", "Sophia", "Mia") vektörü yer alıyor. Diğer sütun "Marks" ve değeri (35,75,45,30,85) olan bir vektör içeriyor. Son olarak her iki sütun birleştirilerek veri çerçevesi oluşturulup 'x' değişkenine atanır.
x <- data.frame("Student" = c("Ron","Jake","Ava","Sophia","Mia"),"Marks" = c(35,75,45,30,85))
str(x)
'data.frame': 5 obs. of 2 variables:
$ Student: Factor w/ 5 levels "Ava","Jake","Mia",..: 4 2 1 5 3
$ Marks : num 35 75 45 30 85
'data.frame': 5 obs. of 2 variables:
$ Student: Factor w/ 5 levels "Ava","Jake","Mia",..: 4 2 1 5 3
$ Marks : num 35 75 45 30 85
Yukarıdaki kod, 'str(x)' kullanılarak bir Veri Çerçevesinin yapısını gösterir; 2 değişkenli 5 gözlem bulunduğunu ve Student ile Marks değerlerinin yazdırıldığını belirtir.
x$Result = ifelse(x$"Marks">40,"Pass","Fail")
print(x)
Yukarıdaki kod aşağıdaki çıktıyı verir:
Student Marks Result
1 Ron 35 Fail
2 Jake 75 Pass
3 Ava 45 Pass
4 Sophia 30 Fail
5 Mia 85 Pass
Yukarıdaki kodda bir değişken olarak 'x$Result', Veri Çerçevesine 'Result' adlı yeni bir sütun eklemek için kullanılır. 'ifelse()' fonksiyonunun 'x$"Marks">40' şeklindeki ifadesi, Marks sütunundaki vektör değerlerini kontrol eder ve Marks 40'tan büyükse 'Result' değerini 'Pass', aksi halde 'Fail' olarak belirler.
Tebrikler
Tebrikler, bu eğitimin sonuna geldiniz!
R'nin ifelse() fonksiyonunu, sözdizimini, bir sayının Tek mi Çift mi olduğunu bulmadaki kullanımını ve son olarak bir öğrencinin sınavda Geçti mi Kaldı mı olduğunu görmeye yönelik örneği öğrendiniz.
R hakkında daha fazla öğrenmek isterseniz, tüm R kaynaklarımızı burada bulabilirsiniz.
R'de Fonksiyon Kullanımı eğitimimize göz atın.
