Operatörler ve Karar Yapıları


Merhaba R severler,

Bugün dersimizde operatörleri ve karar yapılarına bakacağız. Diğer programlama dillerinden bildiğimiz gibi operatör matematiksel işlemler ya da karşılaştırmalar için kullanılmaktadır. Karar yapıları ise yapılan karşılaştırma sonucu dönecek işlemleri tanımlamamız için oluşturulmuştur. Örneğin ;

A = 100 // burada “=” ifadesi bir operatördür.

İf (A<50)  // burada ise “<” ifadesi bir operatör “if” deyimi ise bir karşılaştırmadır. Eğer a değeri 50’den küçük ise şeklinde tanımlayabiliriz.

Bu işlemleri R programlama içerisinde nasıl yapacağımıza bakalım. Öncelikle operatörlerden başlıyoruz. R programlamada 5 farklı operatörümüz var.

·         Aritmetik operatörler

·         İlişkisel operatörler

·         Mantıksal operatörler

·         Atama operatörleri

·         Muhtelif operatörler

ARİTMATİK OPERATÖRLER

“+” : İki veya daha fazla sayı ya da vektöre ait toplama işlemini gerçekleştirmek için kullanılır.

v <- c( 2,5.5,6)

t <- c(8, 3, 4)

x = c( 7, 6, 5)

print( v + t + x)

[1] 17.0 14.5 15.0

“-“ : İki veya daha fazla sayı ya da vektöre ait çıkarma işlemini gerçekleştirmek için kullanılır. Yukarıdaki örneği ele alırsak;

print ( v - t - x)

[1] -13.0  -3.5  -3.0

“*” : İki veya daha fazla sayı ya da vektöre ait çarpma işlemini gerçekleştirmek için kullanılır. Yukarıdaki değişkenleri göz önüne alırsak;

print(v*t*x)

[1] 112  99 120

“/” : İki veya daha fazla sayı ya da vektöre ait bölme işlemini gerçekleştirmek için kullanılır. yukarıdaki değişkenlere göre;

print(v/t/x)

[1] 0.03571429 0.30555556 0.30000000

“%%” : İki sayı ya da vektöre ait mod (kalan) işlemini gerçekleştirmek için kullanılır. Mod iki sayının birbirine bölümünden kalan anlamına gelir. Yukarıdaki değişkenlere göre;

print(v%%x)

[1] 2.0 5.5 1.0

“%/%” : İki sayı ya da vektöre ait bölme işleminde bölüm sonucunu verir. Yukarıdaki değişkenlere göre;

print(v%/%x)

[1] 0 0 1

“^” : İki sayı yada vektöre ait üs alma işlemini verir. Yukarıdaki değişkenlere göre

print(v^x) // v vektörü taban x vektörü üs durumundadır.

[1]   128.00 27680.64  7776.00

Not : “^” ifadesi için Shift + 3 kombinasyonu kullanılabilir. İlk basımda ekrana yazdırmaz iki defa basmak gereklidir.

İLİŞKİSEL OPERATÖRLER

Aşağıda sıralanacak operatörler R programı tarafından desteklenmektedir. Operatörler bize True – False , 1 – 0 , …vb sonuçlar döndürmektedir.

“>” : İki sayı ya da vektöre ait sayıların büyük olup olmadığını kontrol eder. Yukarıdaki değişkenlere göre;

print(v>x)

[1] FALSE FALSE  TRUE

“<” : İki sayı ya da vektöre ait sayıların küçük olup olmadığını kontrol eder. Yukarıdaki değişkenlere göre;

print(v<x)

[1]  TRUE  TRUE FALSE

“==” : İki sayı ya da vektöre ait sayıların eşit olup olmadığını kontrol eder. Yukarıdaki değişkenlere göre;

print(v==x)

[1] FALSE FALSE FALSE

“<=” : İki sayı ya da vektöre ait sayıların küçük eşit olup olmadığını kontrol eder. Yukarıdaki değişkenlere göre;

print(v<=x)

[1]  TRUE  TRUE FALSE

“>=” : İki sayı ya da vektöre ait sayıların büyük eşit olup olmadığını kontrol eder. Yukarıdaki değişkenlere göre;

print(v>=x)

[1] FALSE FALSE  TRUE

“!=” : İki sayı ya da vektöre ait sayıların eşitsizliğini kontrol eder. Yukarıdaki değişkenlere göre;

print(v!=x)

[1] TRUE TRUE TRUE

MANTIKSAL OPERATÖRLER

Bu konuya geçmeden önce mantık dersinden de hatırlayacağımız bazı ifadeler vardır. Bildiğiniz gibi mantıkta “VE”, “VEYA”, “DEĞİL” olmak üzere 3 farklı işlem var. Bu operatörlerin karşılığı sırasıyla “&& ve &”, “|| ve |” ,”!” şeklindedir.

Not: “|” karakteri için AltGr + Büyük – küçük tuşu kullanılabilir.

R programında “&” vektördeki her elemanı karşılaştırırken “&&” bütün vektörü kapsamaktadır. Aynı şekilde “|” vektördeki her eleman için kullanılırken “||” bütün vektör için kullanılır. Aynı zamanda bu operatörler numerik, mantıksal ve komplex değişkenler için kullanılır. birden büyük olan bütün sayılar TRUE olarak döndürülür.

“& - &&” : VE operatörü olarak tanımlanabilir. Örneğin;

v <- c(3,0,TRUE,2+3i)

t <- c(4,1,TRUE,2+3i)

print(v&t)

[1]  TRUE FALSE  TRUE  TRUE

print(v&&t)

[1] TRUE

Yukarıdaki kodlara göre birinci vektör ve ikinci vektöre ait değerlere bir bakalım;

V içerisindeki 3 değeri ve t içerisindeki 4 değeri 1’den büyük olduğu için bize true değerini döndürür. Vektörlerin ikinci elemanları 0 ve 1 için ise false değeri döndürür. Çünkü elemanlardan birisi birden küçüktür.

“| - ||” : VEYA operatörü olarak tanımlanabilir. Örneğin;

v <- c(3,0,TRUE,2+2i)

t <- c(4,1,FALSE,2+3i)

print(v|t)

[1] TRUE TRUE TRUE TRUE

print(v||t)

[1] TRUE

Yukarıdaki komutları incelersek; v vektörü ve t vektörünün birinci elemanlarının her ikiside birden büyük olduğundan dolayı true değeri getirir. Fakat ikinci elemanları 0 ve 1 ‘e baktığımızda true değeri getirmektedir. VE – VEYA arasındaki esas fark buradan kaynaklanır.

Yani 0 & 1 = False, 0 | 1 = True buda demek oluyor ki elemanlarından en az birisi birden büyük olduğunda eğer VE operatörü kullanılıyorsa False, VEYA operatörü kullanılıyorsa True değeri döndürür.

ATAMA OPERATÖRLERİ

R dilinde atama operatörü için “=” kullanıldığı gibi “<-“ ve “<<-“ operatörleri de kullanılmaktadır.

v1 <- c(3,1,TRUE,2+3i)

v2 <<- c(3,1,TRUE,2+3i)

v3 = c(3,1,TRUE,2+3i)

MUHTELİF OPERATÖRLER

“:” : bu operatör kolon operatörü adıyla anılır. Seri sayı oluşturmak için kullanılır.

a=4:10

a

[1]  4  5  6  7  8  9 10

“%in%” : bu operatör oluşturulan dizi içerisinde aranılan elemanın olup olmadığını bulmak için kullanılır.

v1 <- 8

v2 <- 12

t <- 1:10

print(v1 %in% t)

[1] TRUE

print(v2 %in% t)

[1] FALSE

R programı için öğrenmemiz gerek operatörler şimdilik bu kadar. Bundan sonraki yazıda karar yapılarına bakacağız. R dilinde “if”, “if…else” ve “switch” olmak üzere 3 farklı karar yapımız var.

İF Yapısı:

Bu yapı bize true – false değeri döndürmektedir. Örneğin;

Kullanımı : if (karşılaştırma) {doğru ise bu kısım çalıştırılır}

a="Deneme"

if(is.character(a)) { print("Bu bir karakter değişkendir.")}

[1] "Bu bir karakter değişkendir."

İF…ELSE Yapısı: koşul sağlanmadığı takdirde ne yapılması gerektiğini anlatmamızı sağlar. Örneğin;

Kullanımı : if (karşılaştırma) {doğruysa bu kısım çalışır} else {yanlış ise bu kısım çalışır}

a=50

if(is.character(a)) { print("Bu bir karakter değişkendir.")} else {print("Bu bir karakter değişken değildir")}

[1] "Bu bir karakter değişken değildir"

SWITCH Yapısı: girilen ilk ifadeye göre sonuç seçmektedir. Örneğin;

Kullanımı : switch (ifade,durum1,durum2,durum3…)

x <- switch(

   3,

   "Er",

   "Çavuş",

   "Başçavuş",

   "Teğmen"

)

print(x)

[1] "Başçavuş"

Eğer yukarıdaki örnekte 3 yerine 2 yazmış olsaydık bize “çavuş” sonucunu döndürecekti. Konu ile ilgili sorularınızı chat penceremizden ya da http://scansu.net/forum/showthread.php?tid=2 forum sayfamızdan bize bildirebilirsiniz.

Yazar Kimdir?

Sıtkı Cansu, 19 Ekim 1985 yilinda Konya-Beyşehir'de dogmustur.İlk, orta ve liseyi Beyşehir'de bitirmis olup Konya-Ereğli Selçuk MYO Bilgisayar programcılığı ve Mugla Sıtkı Koçman Üniversitesi İstatistik bölümünden mezun olmustur. Çesitli yerlerde web tasarımcı ve veri tabani yöneticisi olarak çalışan yazar, son üç senedir ingilizce öğretmenliği yapmaktadir. Şu anda yüksek lisansını tamamlamak üzere Mugla Üniversitesinde öğrenim görmektedir.