R dili /Function And Packages In R #Part 3

Codx

Katılımcı Üye
30 Tem 2017
309
1


Merhabalar, iyi forumlar herkese.

R dili serimize devam ediyoruz. Vektörlerden tekrar kısa bir ayrıntıdan bahsettikten sonra fonksiyonlara giriş yapacağız. Ardından paketlerden bahsedeceğiz.

R dili arka planda tıpkı PHP gibi C dilini çalıştırır. Bu da yüksek performanslı bir şekilde çalışmasını sağlar.

Bir önceki partta (Buradan ulaşabilirsiniz.) vektörler ile işlem yapmayı görmüştük. Şimdi o işlemi bir direk R dilinin bize sunduğu özelliklerden yararlanarak işleme sokacağız. Peşinden aynı işlemi bir döngü ile biz yapacağız. Arada geçen zaman farkına bakacağız.

Senaryomuz şu; Bir adet boş vektör oluşturacağız. İki adet her elementinde rastgele değerlerin bulunduğu vektör tanımlayacağız. Her elemente karşılık gelen elementi çarpıp boş vektörde karşılık gelen indexe atacağız.

Bunu ilk başta R dilinin özelliklerden yararlanarak yapıyorum. Buna Vektorized Apporoach deniyor. Bunu mauel olarak yapınca da De-Vektorized Apporoach deniyor.



Fonksiyonlardan daha önce bahsetmiştik, parametre nedir? Gibi konulara değinmiştik şimdi ise fonksiyonların değinmediğimiz konlarında bakalım.

Bir fonksiyon hakkında örnek kullanım yada bir açıklamaya ihtiyaç duyduğumuz zaman başına soru işareti ekleyip bulunduğumuz satırdaki kodu çalıştırabiliriz. Bu sayede sağ alt pencerede bize help sekmesinden ilgili yer açılacaktır.

Örneğin rnorm() fonksiyonunun kullanım şekillerine bakalım;
Kod:
?rnorm()



rnorm() parametre alırken "n, mean, sd" sıralamasıyla alıyormuş. Bunların açıklamaları yine bu kısımda bulunuyorlar.

Örneğin bir deneme yapalım; Ben beş adet random değer istiyorum, mean'i şöyle açıklayayım default olarak 0 geliyor, sd yani standart sapma olarak default 1 değeri geliyor. Hatırlarsanız eğer random bir değer istediğimiz zaman -2 ve 2 arasında bir sonuç döndürüyordu, default değerler ile bize dönen sonuçlar bu şekildeydi. Şimdi biz bu değerleri değiştiriyoruz.



Bize dönen değerler sd değerini 0.1 olarak gönderdiğimiz için mean değerinden fazla uzakta sayılar döndürmüyor. Eğer sd'yi artırırsak



Şeklinde bize sonuç döndürür.

Son olarak sqrt() fonksiyonun helpine değinmek istiyorum. Bu fonksiyon sayının karekökünü alır. Ben example kısmına değinmek istiyorum. Aldığım örneği direk olarak çalıştıracağım.



Paketlerden bahsedecek olursak eğer;

Nedir Bu Paketler?

içerisinde hazır fonksiyonların bulunduğu bir nevi kütüphanedir. Python dilinde import ile, .Net gibi dillerde using ile import ettiğimiz kütüphaneler olarak düşünülebilir.

Paketlerin kimisi görselleştirme işlemleri için, kimisi veriyi işlemek için, kimisi farklı işlemler için olabilirler.

Paketler sağ tarafta Packages sekmesinin altında görünürler. Burada yüklü olan paketler listelenmektedir, yanlarında bulunan check box işaretli ise aktif olarak çalışmakta oldukları anlamına gelmektedir.



Örneğin bizde yüklü olmayan fakat ileride kullanacağımız bir paket olan ggplot2'u yükleyelim.

Kod:
install.packages("ggplot2")

Sonrasında yapacağımız tek işlem beklemek olacaktır. Geri kalan kısımları kendisi otomatik olarak hallediyor olacaktır.



Eğer silmek istersek, paketin bulunduğu kısıma gelip çarpı işaretine basmak yeterli olacaktır. Aynı şekilde otomatik olarak silmektedir.

Paketler içerisinde çeşitli işlemler yapmak için hazır fonksiyonların bulunduğu kütüphanelerdir demiştik. Şimdi bir göz gezdirelim.

ggplot2 kütüphanesinin check boxını işaretlemiyorum ve ggplot2 içerisinde olan bir fonksiyona erişmek istiyorum.



Bana fonskiyona erişilemediğini daha doğrusu böyle bir fonksiyon tanımadığını söylüyor. Peki nasıl aktif tanıtacağız? Zaten paketler arasında yüklü olduğu için iki tanıtma şeklimiz var.

  1. 1.si yanındaki kutucuğu işaretleyebiliriz
  2. 2.si library() komutunu kullanabiliriz.



Biz library fonskiyonu ile ihtiyacımız olan işlemi gerçekleştirdiğimiz zaman yanında bulunan check box otomatik olarak işaretlenmiş olacaktır.

Şimdi içerisindeki istediğimiz fonskiyona erişim sağlayabiliriz. Bu paket hakkında yeri gelmişken biraz bahsedelim. Kısa bir kod yazıyoruz.



İşte bu paketin bize sunduğu bir fonksiyon örneği.

Okuduğunuz için teşekkür eder, iyi forumlar dilerim.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.