22 Şubat 2015 Pazar

DERS 2-R PROGRAMLAMA VERİ TİPLERİ 1

 
       Merhaba arkadaşlar geçen dersimizde R programlamaya giriş yapmıştık, bu dersimizde   R programlama veri tiplerininden bahsedecem ve bu veri tipleri ile ilgili örnekler yapacam. İlk veri tipi olarak Dizilerden başlayalım

1  Temel Veri Tipleri

1.1 İnteger:

   R programlama dilinde tamsayı değişken oluşturmak için as.integer fonksiyonu çağrılır. Ayrıca  is. integer fonksiyonunu uygularak y'nin gerçekten bir tamsayı olduğundan emin olabilinir. 

y=as.integer(3)     #y değişkenine  3 değeri atandı
y                           #y değişkenini konsolda görüntüler
class(y)                #y değişkenini türünü(sınıfını) gösterir. aşağıdaki cevabı verir
[1] "integer"
is.integer(y)    #y değişkeni tamsayı mı değil mi onu kontrol eder ve sonuca göre "TRUE" ve "FALSE" döndürür
  
    Bu arada as.integer fonksiyonu bir numerik değeri, tamsayı değer olmaya  zorlar

as.integer(3.14)    #aşağıdaki sonucu gösterir
[1] 3
  
 Aynı şekilde ondalık değerler için stringleri ayrıştırılabilir

as.integer("5.27")
[1] 5 

   Diğer taraftan ondalık olmayan bir stringi ayrıştırmaya çalışırken hata verir.

as.integer("Sukru")
[1] NA
warning message:

    Genellikle, mantıksal  değerler üzerinde aritmetik işlemler gerçekleştirmek içinde faydalıdır. C dilindeki   gibi "TRUE", 1 değerini ifade eder, "FALSE" ise 0 değerini ifade eder.

as.integer(TRUE)
[1] 1

as.integer(FALSE)
[1] 0

1.2 Karmaşık sayılar

   R programlamada A complex  değeri, saf sanal değer "i" aracılığıyla tanımlanır
z=1+2i     #Karmaşık bir değer oluşturur
z              #z değerini gösterir
[1] 1+2i
class(z)  # z değerinin sınıfını(türünü) gösterir
[1]  "complex"
   -1 karmaşık bir sayı olmadığından, karekökü alınınca aşağıda görüldüğü gibi hata verir
sqrt(-1)
[1] NA
warning message
  
   -1 'in yerine -1+0i karmaşık değerini kullanmak zorundayız
sqrt(-1+0i)
[1] 0+1i

    Alternatif olarak -1 değerini karmaşık bir değer olmaya zorlanabilir.
sqrt(as.complex(-1))
[1] 0+1i

1.3 Mantıksal

    Mantıksal bir değer genellikle değişkenler arasındaki karşılaştırılma yoluyla oluşturulur.
x=1;y=2   #Örnek değerler
z=x>y      #x, y den daha mı büyük
z               #z mantıksal değerin sonucunu gösterir
[1] FALSE 
class(z)     # z'nin sınıfını(türünü) gösterir
[1] "logical"

    Standart mantıksal işlemler &(and), |(or) , !(negation)  dır
u=TRUE; v=FALSE  #örnek değerler
u&v                             #mantıksal and işlemi
[1]FALSE  
u|v                             #mantıksal or işlemi
[1]TRUE
!u                             #mantıksal negation işlemi
[1]FALSE

1.4 Karakterler

    Bir karakter nesnesi, R da string değerleri temsil etmek için kullanıılır. as.character() fonskiyonuyla  nesneler, karakter değerlerine çevirir.

x=as.character(3.14)  #3.14 ondalık değeri character dizisine çevirdi
x                                   # x 'i gösterir
[1] "3.14"
class(x)                        #x'in türünü gösterir
[1] "character"
  
   İki karakter değerini, paste() fonsiyonu ile  birleştirilebilir
firsname="sukru"; lastname="erguntop"
paste(firstname, lastname)
[1]sukru erguntop

  Bununla birlikte,  sprintf() fonsiyonu ile okunabilir bir dizi oluşturmak için genellikle daha uygundur, C dili yazum kuralına sahiptir

sprintf("%s has %d dolar", "sam",100)
[1]sam has 100 dolars
  
   Alt dize çıkarmak için,  substr() fonksiyonu uygulanır. Bir dizide, 3. ve 12.  pozisyonların arasında alt dizi nasıl çıkarıldığı aşağıdaki örnekte gösterilmektedir

substr("Mary has  a little lamb", start=3,stop=12)
[1] "ry has al"

    Ve dizide, "little" kelimesini "big" kelimesi ile yer değiştirmek içinde sub() fonksiyonu kullanılır

sub("little","big","Mary has a little lamb.")
[1]"Mary has a big lamb"

    R documentasyonunda string manipulasyonu için daha fazla fonksiyonlar bulunabilir.
help("sub")


2-Vektörler

       Vektör, aynı temel tip veri elemanlarının dizisidir. Vektör elemanlarına resmi olarak bileşen denilir. Yinede biz bu derslerimizde vektör üyeleri diyeceğiz.
   
c(2,3,5)                                          #numerik değer olan 2,3,5 değerlerini içeren vektör 
[1]2,3,5
c(TRUE,FALSE,FALSE,TRUE)     # mantıksal değer içeren vektör
[1]TRUE,FALSE,FALSE,TRUE
c("aa","bb","cc","dd")                   #Karakter dizisi içeren vektör
[1] "aa","bb","cc","dd"

     Bu arada, length() fonksiyonu ile bir vektördeki üyelerin sayısı verilir
length(c("aa","bb","cc","dd"))
[1]4

s=c("aa","bb","cc","dd")   
s[3]
[1]="cc"

 Eğer negatif indexs verirsek o indexteki üyeyi çıkarır

s[-3]
[1]"aa","bb","dd"

Mantıksal vektör indeksleri

s=c("aa","bb","cc","dd")  
s[c(TRUE,FALSE,FALSE,TRUE) ]   #TRUE olduğunda karşılık gelen elamnı gösteri FALSE ise göstermez
[1]"aa","dd"

2.1 Vektör Birleşimi

      Vektörler c() fonksiyonu aracılığıyla birleşebilirler. Örneğin n ve s vektörleri olan aşağıdaki iki vektör, her iki vektörün elementlerini içeren yeni bir  vektöre atanabilir.
n=c(2,3,5)
s=c("aa","bb","cc","dd")
c(n,s)
[1]2,3,5, "aa","bb","cc","dd"

2.2 Vektör İşlemleri

       Vektörlerin aritmetik işlemleri üye üye yapılmaktadır.  Örneğin a ve b adında iki vektöre sahip olduğumuzu varsayalım
a=c(1,3,5,7)
b=(1,2,4,8)

   Sonra a vektörünü 5 ile çarparsak, vektörün üyelerinin her birinin 5 ile çarpımını elde ederiz.
5*a
[1]5,15,25,35
  
   Ve a ve b vekörlerini toplarsak, toplam, a ve b nin karşılıklı üyelerinin toplamı olan tüm üyelerin vektörü olurdu
a+b
[1]2,5,9,15
   
   Çıkarma,çarpma ve bölme işlemi içinde benzer şekilde, üyeye özgü işlemler aracılığıyla yeni bir vektör elde edilir.

a-b
[1]0,1,1,-1
a*b
[1]1,6,20,56
a/b
[1]1.00,1.500,1.250,0.875

  Geri Dönüşüm Kuralı
  Eğer iki vektörün uzunluğu eşit değilse,  uzun olan vektörle eşleştirmek için, kısa olan geri dönüşüm olacak, Örneğin farklı uzunluklara sahip aşağıdaki u ve v  vektörleri, toplamı kısa olan u vektörünün geri dönüşüm kuralı ile hesaplanır
u(10,20,30)
v(1,2,3,4,5,6,7,8,9,)
u+v
[1]11,22,33,14,25,36,17,28,39

2.3 Adlandırılan Vektör Üyeleri

Örnek
v=c("Mary","Sue")
names(v)=c("First",Last)
v
[1]First     Last
   Mary    Sue

Aşağıdaki şekilde de yapılabilir
v[c("Mary","Sue")]
v
[1]First     Last
   Mary    Sue
































Şükrü ERGÜNTOP

Author & Editor

Bilecik Şeyh Edebali Üniversitesi Bilgisayar Mühendisi mezunuyum 2015 yılından beri Sigorta Bilgi ve Gözetim Merkezinde İş Zekası alanında çalışmaktayım

1 yorum:

  1. Faydalı paylaşım. elinize sağlık...

    Ali METİN
    Computer Engineer
    Good Work..


    http://ibrahimalimetin.blogspot.com.tr/
    https://www.youtube.com/channel/UCt3B_hx_MvI6ICOJxRVMtDw

    YanıtlaSil