R Programlama Kontrol Deyimleri ve Fonksiyonlar |
5. Bölüm
R programlama dilinin özelliklerine değindiğimiz yazı serisinin bir önceki bölümünde farklı veri yapılarından bahsetmiştik. R Programlama 5. bölümde diğer programlama dillerinde de sıklıkla kullandığımız kontrol deyimlerinden ve fonksiyonlardan bahsedeceğiz. Gelin yazımızı birlikte inceleyelim.
4. Bölüme Ulaşmak İçin Tıklayınız
1. Kontrol Deyimleri
Pek çok programlama dilinde olduğu gibi R programlama dilinde de kontrol deyimlerini yazdığımız kodun akışını ve çalışmasını kontrol etmek için kullanırız.
► if, else: bir durumu test etmek için kullanılır.
► for: kodun belli bir kısmını defalarca kez çalıştırmak için kullanılır.
► while: kodun sadece belli koşullar dahilinde çalışmasının istendiği durumlarda kullanılır.
► repeat: sonsuz bir döngünün çalıştırıldığı durumlarda kullanılır.
► break: bir döngünün çalışmasını sonlandırmak için kullanılır.
► next: bir sonraki döngüye geçmek için kullanılır.
► return: bir döngüden değer döndürmek için kullanılır.
1.1. If-Else
If-else kontrol deyimlerini belli bir durumu test etmek için kullandığımızı belirtmiştik. If-else kullanımının birden fazla yöntemi vardır. Aynı durumu kontrol etmek için kullanabileceğimiz iki farklı örneği inceleyelim. Bu durumda kendi belirlediğimiz x sayısı, 3’ten büyükse y sayısına 10, değilse 0 değerini atıyoruz.
1.2. For
For döngüsü if-else deyimlerinden farklı olarak döngüyü birden fazla kez çalıştırmak için bir tam sayı değer alır. For döngüsünün nasıl kullanıldığını 4 farklı örneği inceleyerek pekiştirelim.
For yapısını kullanarak iç içe döngüler yaratmak da mümkündür. Ancak iç içe çok fazla döngü yaratmak bir seviyeden sonra kodun okunmasını zorlaştırabilir.
1.3. While
While döngüleri çalışmaya öncelikle verilen durumu kontrol etmekle başlar. Eğer döngü içine yazılan şart doğru ise kod parçası çalışır. While kullanarak ile 1’den 10’a kadar saydığımız aşağıdaki örneği inceleyelim.
Tek bir kod parçasında birden fazla döngü ve birden fazla şart kullanılabilir. Aşağıdaki örnekte rbinom() fonksiyonu kullanılmıştır. Rbinom() sırayla görmek istediğimiz gözlem sayısı, gözlem başına belirlediğimiz deneme sayısı ve her deneme için belirlediğimiz başarı olanağını parametre olarak alan bir fonksiyondur. Bu örnekte gözlemlediğimiz gibi bazı döngüler her çalıştığında farklı çıktılar üretebilir bu sebeple bu döngülerin ne zaman sonlanacağı bilinemez. Kodlama aşamasında bu gibi durumlara dikkat edilmelidir.
1.4. Break
Tekrarlayan bir döngü, bir kod bloğu üzerinde birkaç kez yineleme yapmak için kullanılır. Tekrar döngüsünden çıkmanın yolu break kullanmaktır. Aşağıdaki döngüde 1’den 5’e kadar olan tamsayıları içeren döngü 3 değerini aldığında sonlanacaktır.
1.5. Next
Next ifadesi, bir döngüyü sonlandırmadan döngüyü atlamak istediğimizde kullanılır. Next kullanıldığında o sırada çalışması gereken basamak atlanır ve döngünün bir sonraki tekrarına başlanır.
Aşağıdaki örnekte val değeri 3’e eşit olduğunda tekrarlama durur ancak döngü çalışmaya bir sonraki basamaktan devam eder. Böylelikle 4 ve 5 tam sayı değerleri ekrana çıktı olarak verilmiş olur.
1.6. Repeat
Tekrarlayan bir döngü bir kod bloğu üzerinde birkaç kez yineleme yapmak için kullanılır. Döngüden çıkmak için bir koşul kontrolü yoktur bu sebeple döngüden çıkmak için break ifadesini kullanmak gerekir. Break ifadesinin kullanılmaması sonsuz bir döngüye sebep olur.
1.7. Return
Programlarımızda sıklıkla fonksiyonların bazı işlemler yapmasını ve bu işlemler sonucunda bize bir sonuç döndürmesini isteriz. Bu işlem return() fonksiyonu kullanılarak gerçekleştirilir. Girilen tam sayının pozitif, negatif ya da sıfır olduğunu kontrol ettiğimiz ve “sonuc” değerini döndürdüğümüz aşağıdaki basit örneği inceleyelim.
2. Fonksiyonlar
Fonksiyonlar, programlama dillerinde sıklıkla kullandığımız yapılardır. Fonksiyonlar bizi birden çok kez ihtiyaç duyduğumuz işlemleri yapmak için her seferinde aynı kodu yazmaktan kurtarır. Bir fonksiyon oluşturduğumuzda o fonksiyonu defalarca çağırabiliriz. Parametre olarak gönderilen iki sayıyı toplayan fonksiyon örneğini inceleyelim.
R’ın bize sağladığı veri setlerinden biri olan airquality veri setininin ilk 18 satırından oluşan görseli inceleyelim.
Airquality veri setindeki sütunlarının ortalamalarını hesaplamak için oluşturduğumuz sütun_ortalama_hesapla() isimli fonksiyon örneğini inceleyelim.
Bu fonksiyonda airquality veri setinin sütunlarını sütun değişkenine atıyoruz. Daha sonra bu sütunlardaki sayısal değerleri ortalama değişkenine atayıp oluşturduğumuz for döngüsü sayesinde sütunların ortalamalarını hesaplıyoruz. Toplam 6 sütundan oluşan veri setinde her sütun için ortalama değerlerini hesapladığımızda 6 değer elde ediyoruz. Veri setinin ilk iki sütununda NA ile gösterilen eksik veriler olması nedeniyle ilk iki sütunun ortalama değerlerini hesaplamak için eksik verilerin veri setinden çıkarılması gerekmektedir. Complete.cases() fonksiyonunu kullanarak kayıp verileri veri setimizden çıkardıktan sonra tüm sütunların ortalamasını hesaplayabiliriz.
2.1. Özyinelemeli Fonksiyonlar
Kendi kendini çağıran fonksiyonlara özyinelemeli(recursive) fonksiyon denir. Pek çok programlama dilinde özyinelemeli fonksiyonlar sıklıkla kullanılır, karşımıza en çok çıkan örneklerinden biri de özyinelemeli faktöriyel ya da fibonacci sayısı hesaplamalarıdır.
Bir sonraki bölümde R’da kapsama kurallarına, zaman ve tarih fonksiyonlarının kullanımına değineceğiz.
Not: R programlama yazı serisinin ilk 5 bölümünü incelediyseniz kendinizi test etmek için R dilini kullanarak basit bir hesap makinesi tasarlayabilirsiniz. Bunun için RStudio ve ya Jupyter Notebook kullanabilirsiniz. Başarılar!
1 | 2 | 3 | 4 ⇦ Önceki Bölümler
KAYNAK:
► Tutorialspoint
► Coursera
► Datamentor
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye