Değişkenler ve Veri Yapıları


Not: Lütfen bu dersileri dikkatle takip ediniz. Çünkü anlatılacak konu ileri seviye R programlamadır.

Merhaba R severler,

Bugün dersimizde R programlama için genel bir giriş yapacağız fakat bu anlatım daha detaylı bir anlatım olacak değişkenler  ve veri yapıları üzerinde duracağız. İlerleyen derslerde ise fonksiyonlar, matrisler diziler gibi önemli konuların anlatımını yapacağız. Lafı çok uzatmadan hemen R hakkında kısa bilgi verelim.

R dili istatistiksel analiz, grafik gösterimleri ve analizleri için kullanılan bir dildir. Yeni Zellanda’da bulanan Auckland üniversitesinde Ross Ihaka ve Robert Gentleman tarafından geliştirilmiş, çekirdekte S dili kullanılmıştır. Genel komut yapısı şu şekildedir.

Değişken = komut (argümanlar)

En güncel sürümü R 3.3’tür. Derslerde ise RStudio kullanılmaktadır. R için bu kadarlık tanım yeterli diye düşünüyorum ve ilk konumuz olan veri tiplerine geçiyoruz.

Nesnel tabanlı bir programlama dilinde değişken , boş kapların raflara dizilişi gibi değişkenlerinde RAM içerisinde dizilişine benzetilebilir. Onlar için integer, string dediğimizde kapların su kabı, şeker kabı gibi nitelendirebiliriz. Fakat r programlamada durum biraz farklı. Değişkenler program içerisinde nesne olarak algılanmaktadır. Her değişken bir nesne görevi görür. O zaman incelememiz gereken şey R nesne tipleri olacaktır. Aşağıda bazıları listelenmiştir.

·         Vektörler

·         Listeler

·         Matrisler

·         Diziler

·         Faktörler

·         Veri çerçeveleri (data frame)

Aşağıdaki tabloda vektörlere ait veri tiplerini görebilirsiniz.

Veri Tipi

Örnek

Logical

TRUE, FALSE

Numeric

18.9, 22 , 16.1

Integer

2L, 3L, 0L

Complex

3 + 2i

Character

‘karakter’, ‘sayı’,’dizi’

Raw

 

 

Yukarıdaki tipleri biraz açıklayalım

Logical : Nesnel tabanlı dillerde bu tip “boolean” olarak karşımıza çıkar ve genelde iki değişken yada nesneyi karşılaştırmak için kullanılır. Sonuç olarak bize “True – False” değerini getirir.

Numeric: Desimal bir değişkendir. Yani kayan noktalı bir rakam alabilir.

Integer : Diğer programlarından bildiğimiz ve sevdiğimiz integer veri yapısı bu program içerisinde 32 bit olarak tanımlanmıştır

Complex: bu değişken tipi R içerisinde yalın sanal sayı “i” olarak tanımlanmıştır.

Character : String olarak bildiğimiz karater veri tipi burada Character olarak karşımıza çıkar.

Raw : Satır halinde veri tanımlamasını sağlar.

Şimdi yukarıdaki veri tiplerine ait küçük kodlar yazalım.

Örneğin bir veri setinde cinsiyet sütunu olsun ve bu sütunu erkek için true kadın için false değeri döndürdüğünü düşünelim.

LOGICAL

c <- c(TRUE, FALSE,TRUE,FALSE,TRUE,)

veri tipini kontrol edelim hemen

is.logical(c) // c’nin veri tipi logical mı?

[1] TRUE // sonuç bize evet logicaldir diyor

NUMERIC

X değişkenimize kayan noktalı bir sayı atayalım

x=10.5

is.numeric(x)

[1] TRUE

Evet bu bir numeric değişkendir.

INTEGER

> y = as.integer(3)

> is.integer(y)

[1] TRUE

Şimdi numeric ile integer arasındaki farkın ne olduğuna bakalım. Num  ve int isminde iki değişkenimiz olsun ve her ikisine de kayan noktalı bir sayı olan aynı değeri atayalım.

> num=5.5

> int=as.integer(5.5)

> num

[1] 5.5

> int

[1] 5

Görüldüğü gibi numeric veri tipi kayan noktalı sayıyı kabul ederken integer kabul etmemektedir.

COMPLEX

Karmaşık sayılar için kullanılan bir değişken tipidir. Örneğin -1 sayısının kare kökünü almaya çalıştığımızda karşımıza çıkan sonuç;

a=-1

sqrt(a)

[1] NaN

Warning message:

In sqrt(a) : NaNs produced

Şu anda a değşkeninin sınıfı “numeric” tir. Fakat ben bu değişkeni complex yaparsam;

a=as.complex(a)

sqrt(a)

[1] 0+1i

class(a)

[1] "complex"

Görüldüğü gibi işlemlere devam edebiliyoruz.

CHARACTER

String ifadeler için kullanılır.

a=5

class(a)

[1] "numeric"

a=as.character(5)

class(a)

[1] "character"

a

[1] "5"

Yukarıdaki örnekte a değişkenine sayı atandı ve numerik değişken haline geldi. Biz bunu hemen string ifadeye çevirdik sonuç tırnak içerisinde gösterildi.

Dersin bu kısmına kadar veri tipleri ve r dilinde komut dizilimi hakkında bilgi edindik. Şimdi değişken tanımlama üzerine duralım. Aşağıdaki tabloyu incelediğinizde R programında değişkenlerin nasıl tanımlanabileceğini görebilirsiniz.

Değişken Adı

Durum

deg_adi1.

Geçerlidir.

deg_adi%

Geçersizdir.

1deg_adi

Geçersizdir.

.deg_adi,deg.adi

Geçerlidir.

.2deg_adi

Geçersizdir.

_deg_adi

Geçersizdir.

 

Her ne kadar r içerisinde Türkçe karakter ile değişken tanımlaması yapılıyor olsa da tavsiye edilmeyen bir durumdur. Hemen bir örnek verelim

deg.1 = c(0,1,2,3)

deg.2 = c("veri1","veri2")

cat("deg.1 değişkeninin içeriği",deg.1,"/n Tipi ise", class(deg.1),"'tir")

  deg.1 değişkeninin içeriği 0 1 2 3 /n Tipi ise numeric 'tir

 

yukarıdaki deg.1 ve deg.2 değişkenlerinin tanımlaması yapıldıktan sonra cat değişkeni ile açıklama yapıyoruz. Kullanımı oldukça basit bir komuttur.

cat(“string ifade”,değişken adı,”string ifade”,değişken adı,….) şeklindedir.

DEĞİŞKEN ARAMA

Düşünün ki büyük bir veri seti içerisinde çalışyorsunuz ve aniden bir değişkenlerin ne olduğunu unuttunuz. Bu noktada ls() komutu bize yardımcı olur.

print(ls())

bu komutu kullandığınızda tanımladığınız bütün değişkenleri listelemektedir. Örneğin benzer isimde değişkenleri listelemek istiyorsanız

print(ls(pattern = "deg"))

[1] "deg.1" "deg.2"

Komutunu pattern argümanı ile kullanabiliriz. Komutta söylenen şey içerisinde “deg” karakteri barındıran değişkenleri getir.

DEĞİŞKEN SİLME

Değişken silmek istediğimizde rm()  komutu kullanılmaktadır. Açılımı tahmin edeceğiniz gibi “remove”dur.

rm(deg.1) // bu komutla deg.1 isimli değişken silinmektedir.

Bugünlük değişken ve veri yapısı üzerinde durduk. Sonraki dersimizde operatörler ve karar yapıları üzerinde duracağız. Soru ve önerileriniz için sağ alt taraftaki chat penceresini kullanabilirsiniz.

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.