29 Ekim 2015 Perşembe

R dplyr kütüphanesi


Dplyr R programlama dilinde en çok kullanılan kütüphanelerden birisidir. Bu kütüphanenin temel işlevi veri işlemeyi (data manipulation) son derece kolaylaştırmasıdır. Herhangi bir veri tabanı üzerinde sorgu yazmış kişiler için bu kütüphaneyi anlamak ve kullanmak hiçte zor olmayacaktır. Aradaki benzerliği şöyle açıklayayım;

Örneğin bizim veri tabanımızda tablolar ve bu tabloların içerisinde de kayıtlarımız mevcuttur. Biz SQL komutları ile bu verilere erişebilir , sıralayabilir , gruplayabilir , belli kriterlere sahip olanları getirebilir ve daha birçok işlemi yapabiliriz. R içerisinde de kendi oluşturduğumuz veriler ve dışarıdan okuduğumuz csv , txt vb. veri setlerinin içerisinde de benzer işlevleri yapmamızı sağlayan kütüphane "dplyr" dir. Bu yüzden kullanımı çok yaygındır.

Kodlara göz atmadan önce R içerisine bu kütüphaneyi indirmeliyiz , bunun için aşağıdaki kodu kullanabiliriz ya da paket yükleyiciden indirebiliriz;

install.packages("dplyr")

Ben Linux kullanıyorum ve R'ı ilk yüklediğimde 3.0.2 sürümünü yükledi ve bu sürümde kütüphaneyi kullanamıyoruz. Eğer böyle bir sorunla karşılaşırsanız aşağıdaki linkte anlatıldığı gibi R'ı 3.1.0 a yükseltebilirsiniz;

http://sysads.co.uk/2014/06/install-r-base-3-1-0-ubuntu-14-04/

İndirdikten sonra da library(dplyr) ile projemize dahil delim ve R içerisinde hazır bulunan "mtcars" verisi üzerinde birkaç komut yazalım.

> mtcars%>%
+ select(hp)

Yukarıdaki komutu inceleyecek olursak öncelikle verimizi seçiyoruz sonrada %>% ile alt satıra geçiyoruz. Bu işaret sonra anlamına gelir ve bir önceki işlemden sonra yazılan işlemi gerçekleştirileceğini belirtir. Daha sonra select ile hangi sütunun getirileceğini belirtiyoruz tıpkı SQL de olduğu gibi. Burada sadece hp(horse power) sütununa ait veriler getiriliyor.

> mtcars%>%
+ select(hp) %>%
+ filter(hp > 100)

Buradaki diğer bir komut filter , bununla veri içerisinde filtre uyguluyoruz ve bize hp değeri 100 den büyük olan verileri getiriyor. SQL deki where komutu gibi.

> mtcars%>%
+ select(hp,am)%>%
+ filter(hp>=100)%>%
+ arrange(am,hp)

Diğer bir komutumuz arrange , bu komut sonuç olarak dönderilen veriyi sıralı halde getirir. SQL deki order by gibi.

> mtcars%>%
+ select(hp,am)%>%
+ filter(hp>=100)%>%
+ arrange(am,desc(hp))

Burada da hp nin büyükten küçüğe doğru sıralanmış hali bulunuyor.

> mtcars %>% 
+ mutate (test = hp * 2)

Diğer bir komutta mutate. Bunun ile veri üzerinde işlemler yapabilir ve bu işlemleri yeni bir sütun olarak veriye ekleyebiliriz.  Yukarıdaki komutu inceleyecek olursak test adında bir sütun oluşturuluyor ve içerisine hp değerinin iki katı ekleniyor. Burada veri üzerinde birçok fonksiyonu kullanarak işlem yaptırabiliriz.

> mtcars %>%
+ summarise(sum_hp = mean(hp), sum_am = mean(am))

summarise komutu istatistiksel özet oluşturur.

> mtcars %>%group_by(carb)%>%arrange(carb)

group_by ın ne işe yaradığını söylemiyorum , çok gizli!

Şimdilik bu kadar daha detaylı bilgi için aşağıdaki linki inceleyebilirsiniz;

http://genomicsclass.github.io/book/pages/dplyr_tutorial.html

22 Ekim 2015 Perşembe

D3 Js Giriş




D3 Js verilerimizi görselleştirmeye yarayan bir çok Javascript kütüphanesinden birisidir. Bu kütüphane ile büyük veriler için gelişmiş ve etkileşimli grafikler çizmek mümkündür. Yalnız bu kütüphane bize diğerlerinde olduğu gibi hazır grafikler sunmaz , bizim kendi verilerimize ve  yeteneklerimize göre sıfırdan grafikler çizmemize olanak sağlar. Her şeyi sıfırdan yaptığımız içinde grafiği tasarlamak ve gelen farklı veri tiplerine uyumlu hale getirmek başlangıçta sıkıntılı olabilir. Kod yazdıkça işin mantığını kavramak , güzel ve özelleştirilmiş grafikler elde etmek mümkün olacaktır.

D3 kullanarak oluşturduğumuz grafikler SVG formatındadır. Html , Css ve D3 kullanarak çok farklı grafikler elde etmek mümkündür. Aşağıdaki linkten kendi sitesindeki örnekleri inceleyebilirsiniz.

https://github.com/mbostock/d3/wiki/Gallery

Başlangıç için aşağıdaki gibi basit bir örnekle başlayalım , sonraki yazılarımda da D3 ile daha gelişmiş grafikler yapmaya başlarız. Bu arada SVG nin koordinat ekseni sol üst köşeden başlar yani sol üst köşe (0,0) noktasıdır ve "Y" ekseni aşağı doğru artmaktadır.


9 Ekim 2015 Cuma

JSF Form Sorunu?


JSF ile bir şeyler yapmaya çalışırken en çok sıkıntı yaşadığım yerlerden biriside dialog içerisinde oluşturduğum form verilerini Managed Bean lere aktarmak oldu. Anlam veremediğim şekilde veriler Bean içerisine aktarılamıyor. Basit uygulamalarda böyle bir sorunla genelde karşılaşmadım ancak çalışma biraz daha büyüyüp olgunlaşınca böyle bir hata ile çok karşılaşmaya başladım. İnternette yaptığım araştırmalar sonucu bu problemi aşmayı becerebildim.

Aslında çözümü oldukça basit , diyalog içerisinde yeni bir h:form  ekliyoruz ve commandButton içerisinde de process = "@form" yazdığımızda sorunsuz bir şekilde çalışmasını sağlamış oluyoruz.



Bazen bunu yapmadan sadece process = "@this"  şeklinde commandButton içerisine yazarsak yine bir çözüm olabiliyor , deneyip görmek lazım.

Bu aralar sıkça aynı hata ile karşılaşıp çözümü sürekli unuttuğum için en azından kendime hatırlatma olarak buraya not düşmüş oldum. Şimdilik bu kadar size iyi çalışmalar.