R dili

Codx

Katılımcı Üye
30 Tem 2017
309
1
R Dili Part-1 / R Programlama Temelleri



Merhabalar, iyi forumlar herkese.

Yeterli miktarda Türkçe kaynak bulunmamasından ve forumda daha önce konusu açılmamış olması hasebiyle bu konuyu açma gereği duydum.

Bu seride R programlama dili nedir? Hangi amaçlarda kullanılır? Nasıl yüklenir? Nasıl çalışır gibi konulara değinmek istiyorum.

Konumuza geçelim.

R NEDİR?
R, yoğunlukla veri bilimciler tarafından kullanılan bir yazılım dilidir.
Veri modelleme, veri analizi gibi alanlarda bize kolaylıklar sağlar. R dili, geniş bir döküman desteğine sahiptir. 2 milyondan fazla kullanıcı olduğu bilinmektedir. İhtiyaçlara hızlı bir şekilde cevap verebilmesi ile bilinir. Bunun ile birlikte R, kullanıcı ihtiyacına göre pakat geliştirilmesi konusunda da olanaklar tanır.

R dili, Ross Ihaka ve Robert Gentlemen tarafından S dilinin uyarlaması olarak 1991 yılında ortaya çıkmıştır.

Neden Python Kütüphaneleri dururken R?

Bu soruyu şu şekilde kısaca cevaplamak yerinde olacaktır. Python Nesne Tabanlı Programlamaya yönelik bir dildir. R dilinde durum böyle değildir. Bunun ile birlikte R detaylı şekilde veri analizi için kullanılmaktadır. Bir firmaya bu şekilde bir detaylı rapor sunulacak ise eğer bunun için R tercih edilmesi mantıklı bir dildir. Eğer ben Neural Network geliştireceğim sıfırdan yapay zeka kodlayacğım tarzında bir hedefiniz var ise Python'a yönelmeniz mantıklı olacaktır. Yukarıda belirttiğimiz gibi R dili veri bilimi için kullanılmaktadır. Bunun için içerisinde yeri geldiğinde değineceğimiz veri analizi için hazır olarak gelen fonksiyonları mevcuttur. Daha detaylı bilgi için;[ame="https://www.youtube.com/watch?v=wKyYkeXZqd0&list=PLZrZMDJ_v_bE-kK9S2OB7XfpL9AUvN1-g&index=6&t"]video[/ame]

NASIL İNDİRİLİR HANGİ ORTAMLARDA KOD YAZILIR?
R dilini bilgisayarımızda çalıştırabilmemiz için önce buradan R'ı, daha sonra buradan bu dil için uygun bir IDE olan RStudio'yu indirmeliyiz.

Desktop Free Versiyonu indirebiliriz.

R yüklendikten sonra açılış ekranı aşağıdaki şekilde olacaktır;


RStudio yüklendikten sonra açılış ekranı aşağıdaki şekilde olacaktır;


Ben göz yormaması için temasını Tools > Global Options > Appearance kısmından değiştiriyorum.

Daha sonrasında her programlama dilinin başlangıcında bulunan adet üzere hello world yazdıralım ekrana.

Görselde belirttiğim alandan scriptlerimizi yazacağımız alanı açıyoruz.


Daha sonrasında,
Kod:
'hello world'
yazıp CTRL + Enter tuşlarına basıyoruz. (İmleç kodun bulunduğu satırdayken!)



Hello world yazdıktan ve kodlarımızı nasıl çalıştırabileceğimizi öğrendikten sonra, değişken tanımlamalarına ve veri tiplerine geçelim.

DEĞİŞKEN NASIL TANIMLANIR?

R dilinin atama operatörü şu şekildedir.
Kod:
<-
Örnek verecek olursak eğer;



Bir değişkene int tipinde bir değer atamak istediğim zaman,

Kod:
[değişkenadı] <- [değer]L
Şeklinde tanımlıyorum. Sonuna eklediğimiz L ifadesi dilin bu değerin bir tam sayı olduğunu anlamasın için kullanılmaktadır. R sayısal veri tiplerini eğer bir değer belirtilmez ise double tipinde almaktadır.

Örnek üzerinde deneyelim. 2 değişken tanımlayalım sonrasında bu değişkenleri bir değişkende toplayalım ve hepsinin tipini terminale bastıralım.


Kodumuzu yazdıktan sonra istersek imlecimizin bulunduğu satırda Ctrl + Enter tuş kombinasyonu ile bulunduğumuz satırı çalıştırabiliriz. İstersek kodun çalıştırmak istediğimiz kısmını seçeriz çoklu kod satırlarını çalıştırabiliriz. Bunu istersek belirtilen tuş kombinasyonları ile istersek kod parçasını seçtikten sonra yukarıdan Run butonu ile kodu çalıştırabiliriz. Kodlarımız çalıştıktan sonra sağ taraftaki variables kısmında bizim görebilmemiz için tutulmaktadır. Alt taraftaki terminal ekranında ise çalışan kodun çıktısını görmekteyiz.

Belirtildiği üzere değişkenlerimiz double veri tipinde tanımlanmış bulunmaktadır.

Not: R studio kodlar arasındaki boşlukları umursamaz ve Key Sensitivity bir dildir. Büyük küçük harfe duyarlıdır. Tanımladığımız A değişkeni ve a değişkeni farklı olarak algılanacaktır.

Double tipinde değişken tanımlarken diğer yazılım dillerinin genelinde 1,5 gibi değerler verirken burada sadece 1 verirsek yukarıdaki resimde de gördüğünüz üzere 5 değerine sahip bir değişken tanımladığımda 5.0 olarak almaktadır.



Resimde işaretlediğim simgelere tıklayarak terminali ve values penceresinde bize gösterilen hafızada tutulan değişkenleri hafızadan temizliyorum.

Character tipinde bir değer tanımlamak istediğim zaman önce değişken adını sonra atama ifademi daha sonra ise içerisine gelecek değeri belirtiyorum.

Yukarıda bahsettiğimiz şekilde kodumuzu yazıp çalıştırdığımız zaman bize istediğimiz çıktıyı verecektir.


İki değişken tanımlayalım tipleri character olsun sonra bunları birleştirelim ve print() fonksiyonu ile yazdıralım. print() fonksiyonunu kullanmadan da ekrana çıktı bastırabiliyorduk. Bir tane daha değişken tanımlamamız gerekiyor bunun için sonrasında onun bulunduğu satırda kodu run etmemiz gerekiyor. print() fonksiyonu ile ise bir değişken ile uğraşmadan sadece çıktımızı üretmektedir.

Değişkenlerimi tanımladıktan sonra iki yöntem ile de çıktımızı bastıralım ve farkı görelim.


Farklarının daha rahat anlaşılması için renklendirdim. Kırmızı çerçevenin çıktısı kırmızı, mavi çerçevenin çıktısı mavi çerçeve içerisinde bulunmaktadır.

Döngüler

Temel veri tiplerinden bahsettikten sonra döngülerden bahsedelim.

İlk bahsetmek istediğim döngü While döngüsü.

While döngüsü nasıl çalışır; While döngüsü kendisine verilen koşul true olduğu müddetçe scope içerisinde verilen kodları çalıştırır. Koşul false döndüğü zaman ise döngü durur.

Kod:
while(F){
  print("Döngü içerisindeki işlemler...")
}

Not: F ve FALSE aynı şeyi ifade etmektedir. Aynı şekilde T ve TRUE aynı anlama gelmektedirler.

Döngümün koşul alanına F vererek kodu seçip çalıştırıyorum.


Burada işaretli olan alana dikkatinizi çekmek istiyorum. > işareti ile başlayıp + işareti ile devam etmekte. Console ekranımız burada bize kodun çalışmaya başladığı ve o kısma ait parçaların yani kodun devamının olduğunu belirtmektedir.

Bununla birlikte dikkatinizi çekmek istediğim bir diğer nokta kodun çalışması ve ekrana hiçbir çıktı basmamış olmasıydı. Eğer koşulum F yerine T olsaydı bana üreteceği çıktı print() fonksiyonuna yazdığım çıktı olacaktı. Bunun ile birlikte koşul hiçbir zaman F değerini almayacağı için sonsuz döngüye girecek ve devamlı çıktı basacaktı.

Not: Bu sonsuz döngüyü durdurmak için console ekranına tıklayıp ESC tuşuna basmanız yeterli olacaktır. Bu işlemi durduracaktır.

Nasıl çalıştığını öğrendikten sonra bir sayac ekleyelim ve T iken F'a düşen bir koşul almasını sağlayalım. Kodumuzu yazıyoruz.



Önce başlangıç değerimi belirleyen bir değişken tanımladım. Bu koşul 10'dan küçük oluncaya kadar döngünün devam etmesini istediğimi belirtmiş oldum. Her adımda arttığını belirtmek istiyorum bu yüzden print(sayac) şeklinde bunu ekrana bastırdım. En altta ise sayacımı, sayacımın o anki değerinin üzerine 1 ekleyerek arttırıyorum. Variables ekranında sayacımın 10 olduğu görünüyor, çıktımda ise 1'den 9'a kadar çıktımız bulunmakta. Bu, değerim 9'dan küçük olduğu sürece çalışır 10'a tamamlandığı zaman döngüden çıkar.

For döngüsü: Yine bir koşul ve gövdesi bulunmaktadır. Koşul T sonuç döndürdüğü sürece gövdesinde bulunan kodlarda dönecektir.

Bir for döngüsü yazalım, önce döngü adımı veriyorum. Sonra koşulumu belirtiyorum, ardından yapılmasını istediğim işlemleri yazıyorum.



Koşulun içerisinde görüldüğü üzere i değişkeni tanımlanmış. Dönüş adedini verirken in kullanılmış, sonunda 1:5 şeklinde bir ifade bulunmaktadır.

Nedir bu?

Eğer kodumuzun sadece 1:5 kısmını seçip kodu çalıştırırsak şu şekilde bir çıktı alırız;


1'den başlayıp kendileri de dahil olmak üzere 5'e kadar bizim için bir sayı dizisi oluşturdu. Sağ taraftaki variables ekranında da görüldüğü üzere i değişkenine 5L değeri atanmış bulunmakta, bu demek oluyor ki bize integer veri tipinde bir çıktı üretiyor.

Koşul İfadeleri

Koşul ifadeleri nedir?: Koşul ifadeleri, adı üzerinde verilen koşullar sağlandığı sürece çalışırlar.

if, else if ve else ifadelerini kullanacağız.

Öncelikle rnorm fonksiyonu ile bir adet random değer üretelim. Bu değeri bir değişkene atayalım. Bu değişkenin bulunduğu aralıktaki değerleri görelim, ve bunları kontrol edelim.Hem R dilini biraz daha tanımak hemde koşul ifadelerini uygulamak için böyle bir örnek yapalım.

rnorm() fonksiyonu parametre alır. Zaten bunu yazdığımız zaman bize şu şekilde bir pop-up çıkacaktır.


Ben parametre olarak sadece 1 gönderirsem bana bir adat random değer oluşturur. 5 sayısını parametre olarak gönderirsem eğer, bana 5 adet random değer oluşturur.


Örneğimize geçebiliriz artık.

Bu fonksiyon yardımıyla bir random değer oluşturup bir değişkene tanımlayacağım. Sonrasında bu değerin kaç ile kaç arasında olduğunu bulmak için koşul ifadelerimizi kullanacağım.


Ben kodu seçip ilk çalıştırmamda bana 1'den büyük bir değer üretti. Hem üretilen değeri variables ekranında görebiliriz. Hem de koşulumuz sağlandıktan sonra gövdenin çalıştığını variables ekranındaki cikti değişkeninin değerinide anlayabiliriz. Buna bir de else ekleyeceğiz çünkü her zaman 1'den büyük geleceği gibi bir garantimiz yok.

Not: Biz bu kodu tekrar çalıştırmak isyoruz fakat cikti değişkenini tanımlayıp tanımlamadığını görmek için hafızadan bunu rm() fonksiyonu ile temizlemeliyiz. Kodun en üstüne bunu ekliyoruz.



if ve else koşullarımızı kullandık. cikti değişkenimize değer atandığını gördük. Şimdi bir de else if koşulumuzu dahil edelim. rnorm() fonksiyonu bize -2 ve 2 aralığında bir değer üretmektedir. Şimdi tam kontrol sağlayalım.


Values ekranında görüldüğü üzere kodumuz beklediğimiz şekilde çalışmış bulunmaktadır.

Bölümde sizlerle paylaşacaklarım bu kadardı. Okuduğunuz için teşekkür eder, hepinize iyi forumlar dilerim.

 
Son düzenleme:

BÖKE

Yaşayan Forum Efsanesi
20 Ağu 2016
8,754
411
Twitter: Semantik kümeleme, veri görselleştirme ve kullanıcı deneyimlerini görüntülemede R dilinden yararlanır.

Facebook: Kullanıcıların etkileşimlerini tahmin etmek ve sosyal ağ grafiğini güncellemek için R’ı kullanmaktadır.

Amazon: Müşterilere çapraz ürün önerilerini geliştirmek için veri analizlerinde R kullanır.

Mozilla: Arama motoru alanında faaliyet göstermekte olan Mozilla şirketi, web etkinliklerini görselleştirmek için R’ı kullanır.
Microsoft: R dilini Azure Machine Learning ürünlerinde istatistiksel bir motor olarak ve Xbox eşleştirme( matchmaking) hizmeti için de kullanır.

Google: Arama sonuçlarını iyileştirmek, daha iyi arama önerileri sunmak, reklam kampanyalarının yatırım getirisini hesaplamak, çevrimiçi reklamcılığın verimliliğini artırmak ve ekonomik etkinliklerini tahmin etmek için R dilinden yararlanmaktadır.

Bank of America: Finansal raporlama ve finansal kayıpları hesaplamak için R kullanır.

Merck: Merck & Co. şirketi klinik araştırmalar ve ilaç testi için R programlama dilini kullanır.

Ford Motor Company: Ford, iş stratejisini ve gelecekteki tasarımlarını geliştirmelerine yardımcı olan ürün hakkındaki müşteri düşüncelerini analiz etmek için R’ı istatistiksel analizler için kullanıyor.

National Weather Service: Hava durumu tahmini ve afet tahmini için R’ı kullanır. Ayrıca, afetlerden etkilenen alanları analiz etmek için tahminlerini ve tahminlerinin görselleştirilmesi için de kullanırlar.


konuya ek olarak kullanıldığı alanlarda geniştir emeğine sağlık..
 

Codx

Katılımcı Üye
30 Tem 2017
309
1
Eline, emeğine sağlık.

Sağolun liderim.

ᑕᕮᗰ ΛDΓİΛП;9096237' Alıntı:
Twitter: Semantik kümeleme, veri görselleştirme ve kullanıcı deneyimlerini görüntülemede R dilinden yararlanır.

Facebook: Kullanıcıların etkileşimlerini tahmin etmek ve sosyal ağ grafiğini güncellemek için R’ı kullanmaktadır.

Amazon: Müşterilere çapraz ürün önerilerini geliştirmek için veri analizlerinde R kullanır.

Mozilla: Arama motoru alanında faaliyet göstermekte olan Mozilla şirketi, web etkinliklerini görselleştirmek için R’ı kullanır.
Microsoft: R dilini Azure Machine Learning ürünlerinde istatistiksel bir motor olarak ve Xbox eşleştirme( matchmaking) hizmeti için de kullanır.

Google: Arama sonuçlarını iyileştirmek, daha iyi arama önerileri sunmak, reklam kampanyalarının yatırım getirisini hesaplamak, çevrimiçi reklamcılığın verimliliğini artırmak ve ekonomik etkinliklerini tahmin etmek için R dilinden yararlanmaktadır.

Bank of America: Finansal raporlama ve finansal kayıpları hesaplamak için R kullanır.

Merck: Merck & Co. şirketi klinik araştırmalar ve ilaç testi için R programlama dilini kullanır.

Ford Motor Company: Ford, iş stratejisini ve gelecekteki tasarımlarını geliştirmelerine yardımcı olan ürün hakkındaki müşteri düşüncelerini analiz etmek için R’ı istatistiksel analizler için kullanıyor.

National Weather Service: Hava durumu tahmini ve afet tahmini için R’ı kullanır. Ayrıca, afetlerden etkilenen alanları analiz etmek için tahminlerini ve tahminlerinin görselleştirilmesi için de kullanırlar.


konuya ek olarak kullanıldığı alanlarda geniştir emeğine sağlık..

Paylaştığınız bu kıymetli bilgiler için müteşekkirim.


Teşekkürler.
 

hack3636

Üye
16 Eki 2012
75
0
Arkadaşlar R ile yüksek lisans tezimi hazırladım ve bu programlama dili diğerlerine göre oldukça basit ve kullanışlı.
1500 satır kod yazdım ve her satırını yazarken eğlendim.Hiçbir zaman bir problemle 10 dakikadan fazla uğraşmadım.

Eline emeğine sağlık, bu konuya değindiğin için
 

PourLa

Uzman üye
27 Mar 2016
1,659
30
Vallah R çok övülse de kendi kişisel fikrim Python veri analiz konusunda daha esnek ben bu konuda python taraftarıyım :)
 

Codx

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


Sağolun hocam.





Eklediğiniz bilgi için müteşekkirim.



Arkadaşlar R ile yüksek lisans tezimi hazırladım ve bu programlama dili diğerlerine göre oldukça basit ve kullanışlı.
1500 satır kod yazdım ve her satırını yazarken eğlendim.Hiçbir zaman bir problemle 10 dakikadan fazla uğraşmadım.

Eline emeğine sağlık, bu konuya değindiğin için


R dili bence de gayet keyifli ve ilgi çekici bir syntaxa sahip. Kıymetli yorumunuz için teşekkür ederim.



Vallah R çok övülse de kendi kişisel fikrim Python veri analiz konusunda daha esnek ben bu konuda python taraftarıyım :)


Her yiğidin yoğurt yiyişi farklıdır derler hocam. :))
 
Son düzenleme:
Ü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.