1.1 R Shiny Nedir?
Shiny son yıllarda kullanımı oldukça yaygınlaşan açık kaynaklı bir R paketidir. Shiny ile R programlama dili kullanarak web tabanlı ara yüzlerin oluşturulması sağlanır. Bu sayede HTML, Java Script gibi programlama dillerini bilmeseniz bile analizlerinizi interaktif bir web uygulaması üzerinden gerçekleştirebilirsiniz. İlk versiyonu 28 Şubat 2011 yılında çıkan R shiny Winston Chang önderliğinde bir grup tarafından geliştirilmiştir. Winston’un yanı sıra Joe Cheng, JJ Allaire, Yihui Xie ve Jonathan McPherson R shiny geliştirme sürecinde önemli katkılar sunmuşlardır. Paketin güncelleme ve yeni versiyonlarının geliştirilmesi sürecinde ise pek çok kişinin katkısı vardır ve halen devam etmektedir.
Bu kitabın yazıldığı zamana kıyasla güncellemeleri içeren son versiyonu **2021** yılında sunulmuştur. Shiny bir R paketi olduğu için temel düzeyde bir R programlama dili bilgisini gerektirmektedir. Ancak R shiny kullanmak için R konusunda bir uzman olmanıza gerek yoktur. Sınırlı da olsa mevcut R bilgilerinizi kullanarak çalışmanızda gerekli olan analizleri daha kolay bir şekilde gerçekleştirebileceğiniz R tabanlı web ara yüzlerini oluşturabilirsiniz. Eğer temel R komutlarına ilişkin hiçbir bilgi sahibi değilseniz bu kitap öncesinde temel R uygulamalarını içeren bir kitaba göz atmanız veya R uygulamaları konusunda bilgi veren internet sayfalarını ziyaret etmenizi öneririz. Bu konuda sizin beklentinizi karşılayacak pek çok kitap ve yüzlerce internet sayfası mevcut. Bu bağlamda herhangi bir kitap önermekten kaçınıyoruz. Küçük bir araştırma ile bu kaynaklara kolaylıkla ulaşabilirsiniz. R shiny uygulamasını RKWard, RStudio ve benzeri diğer R tabanlı grafik ara yüzleri üzerinden kullanabilirsiniz. Ancak kullanımı daha yaygın olduğu ve pratik anlamda kolaylık sağladığı için bu kitapta örnekler RStudio üzerinden örneklendirilecektir.
1.1.1 R Shiny Kullanmaya Başlıyorum!
R shiny kullanmaya başlamadan önce R yazılımını bilgisayarınıza yüklü olması gerekmektedir. Eğer yüklü değilse **“https://www.r-project.org/”** sayfasından yazılımın kullandığınız işletim sistemine uygun olan versiyonunu indirebilirsiniz. Bu kitapta tüm örnekleri RStudio üzerinden örneklendireceğimiz için, akabinde eğer yüklü değilse RStudio’yu indirip yüklemeniz gerekecektir. Bunun için de **“https://rstudio.com/”** internet sitesini ziyaret edip sayfanın yönlendirmelerini takip etmeniz yeterli olacaktır. Bu süreçlere ilişkin detaylı bilgileri ilgili kitaplar ve internet sayfalarından bulabilirsiniz.
RStudio’yu bilgisayarımıza yükledikten ve programı çalıştırdıktan sonra sağ üst köşede yer alan “Project(none)” simgesini tıklamalı ve açılan menüden “New Project” seçilmelidir. Daha sonra açılan pencereden önce “New Directory” daha sonra “New Project” kısmını seçip “Directory Name” bölümünde yer alan boşluğa bir isim yazmamız gerekmektedir. Bu adlandırma işlemi R shiny çalışmalarının muhafaza edileceği çalışma dizinini belirlemek içindir. Biz “SHINY1” ismini verdik ancak siz başka isimler verebilirsiniz. Dikkat etmeniz gereken şey eğer varsa daha önce oluşturduğunuz başka projelerle isim benzerliğinin olmamasıdır. Bu sayede çalışma dizininize ulaşmanız daha kolay olacaktır. Aşağıda, bahsedilen süreçlerin görselleri sırası ile sunulmuştur.
1.Yeni Proje Başlatma

2.Yeni Bir Çalışma Dizini Seçme

3.Proje Türünü Seçme

4.Çalışma Dizinine İsim Verme ve Projeyi Başlatma

Şimdi yeni bir çalışma dizini oluşturduk. Bu örnekte çalışma dizini bilgisayarımızda R shiny çalışmalarının ve onunla ilgili dokümanların muhafaza edileceği bir klasördür. Siz aksini istemedikçe bu klasör bilgisayarınızda belgeler içeresinde yer alacaktır. Şimdi sıra R shiny paketinin yüklenmesinde.
1.1.2 R Shiny Paketinin Yüklenmesi!
“Shiny” paketinin indirilmesi için R console’a ya da R düzenleyiciye (R script) aşağıdaki kodları yazmanız gerekmektedir.
Yukarıda sunulan ilk komutu yazdıktan sonra ekrana gelen pencereler sizi paketi indirme sürecinde yönlendirecektir. İlk komut ```install.package(“shiny”)``` “shiny” paketinin R kütüphanenize indirilmesi için kullanılır. İkinci komut ```library(shiny)``` ise indirilen paketin kütüphaneden çağrılmasını sağlar. İlgili paketi kullanacağımız her zaman ikinci komutu çalıştırmamız gerekmektedir. Bu işlemler RStudio kullanıldığı durumlarda menüde yer alan bazı kısa yolların tıklanması ile de gerçekleştirilebilir. Ayrıca “shiny” paketi ile birlikte bazı örnek uygulamalar da otomatik olarak indirilmiş olur. Bu örnek uygulamalardan birisi “01_hello” ismini taşımaktadır. Şimdi örnek olarak bu shiny uygulamasını görmek için aşağıdaki kodu yazalım ve çalıştıralım.
Bu komutu çalıştırdıktan sonra ekrana web uzantılı bir R shiny penceresi açılacaktır. Bu pencerenin sol tarafında bir bar bulunmaktadır ve bu bar üzerinde sütun sayılarını değiştirdiğinizde sağ taraftaki histogram grafiğinde eş zamanlı olarak değişiklikler olmaktadır. Aşağıda sunulan görselde yer almamakla birlikte ekranın en alt kısmında ise mevcut shiny uygulamasının oluşturulmasında kullanılan kodlar yer almaktadır. Bu kodlar ilk başta biraz karmaşık gelebilir ancak bölümün ilerleyen bölümlerinde basitten karmaşığa gidecek şekilde R shiny ile psikometri, ölçme-değerlendirme ve istatistik alanlarında sık kullanılan bazı analizlerin nasıl gerçekleştirileceği açıklanmıştır.
Gördüğünüz gibi R shiny ile R uygulamaları diğer paralı yazılımlardakine benzer ve kullanıcı dostu ara yüzlere kavuşabiliyor. Mevcut örnek yalın bir görünüme sahip olmakla beraber ileriki bölümlerde daha ayrıntılı ve işlevsel ara yüzlerin oluşturulma süreci adım adım açıklanacaktır. Ayrıca ileride yapacağımız R shiny uygulamalarını tamamen Türkçe içerikte oluşturacağız. Bu bağlamda kitabın ileriki bölümlerinde öncelikle R shiny uygulamalarının temel yapısı ve fonksiyonları açıklanacaktır. Sonrasında ise bu fonksiyonları kullanarak psikometri, istatistik alanında sık kullanılan bazı analizleri R shiny uygulaması çerçevesinde örneklendirmeye çalışacağız.
1.1.3 R Shiny Temel Yapısı
R Shiny **“ui”** (user interface) olarak adlandırılan kullanıcı ara yüzü bölümü ve **server** olarak adlandırılan işlem bölümünden oluşur. Adından da anlaşılacağı gibi “ui” ilgili analizin hespalanması veya işlemin yapılması sürecinde kullanıcının karşılaşacağı ara yüzün oluşturulduğu kısımdır. Bazı istisnaları olmakla beraber bu kısımda R kodlarına genellikle yer verilmez ve R shiny’e özgü bazı fonksiyonlar yer alır. Ancak bunlar temel açıdan R kodlarına çok benzer. “ui” de kendi içerisinde bazı bölümlere sahiptir. Bunlara ilişkin detaylı bilgiler ileriki sayfalarda sunulmuştur. Bunun yanı sıra “server” kısmı ise R kodlarının yazıldığı ve bu R kodlarının “ui” bölümünde yer alan kodlarla ilişkilendirildiği bölümdür. Bunların yapılması için de “server” kısmında kullanılabilecek pek çok R Shiny fonksiyonu vardır. Ancak “server” kısmındaki kodların yapısı da R kodlarına oldukça benzemektedir. Henüz örneklendirmediğimiz için burada yazılanlar bazı okuyuculara karmaşık gelmiş olabilir ancak ileride bu zihin karmaşıklığı yok olacaktır. R shiny’ de “ui” ve “server” bölümlerinin aynı R düzenleyicide (R script) yer alması uygun olacaktır. Bazı durumlarda bu bölümler iki farklı R düzenleyiciye yazılsa bile aynı R düzenleyicide yer aldığı kullanımlar daha yaygındır.
R shiny temel yapısı ana hatları ile aşağıda sunulmuştur.
### 1. KULLANICI ara yüzÜ ###
ui<-pageWithSidebar(
headerPanel = (title = "R SHINY TEMEK YAPISI" )
# BU KISMA (HEADERPANEL) UYGULAMANIN BAŞLIĞI YAZILIR
sidebarPanel(
# BU KISMA (SIDEBARPANEL) EKRANIN SOL TARAFINDA YER ALACAK KONTROL
#DÜĞMELERİ YAZILIR
)
mainPanel (
# BURADA (MAINPANEL) ANA EKRANDA YER ALACAK ÇIKTININ TÜRÜ
# BELİRTİLİR (GRAFİK, TABLO VB.)
) )
### 2. SERVER ###
server<-function(input,output) {
# BU KISIMLARDA KULLANICI ara yüzÜNDE TANIMLANAN KONTROL DÜĞMELERİ
#İLE BAĞLANTI KURULUR VE GEREKLİ R KODLARI YAZILIR.
}
shinyApp(ui = ui, server = server)
# BU KOMUT İLE R SHINY KODLARI ÇALIŞTIRILIR
Ana hatları ile belirtilen çatı yapı aşağıda başlıklar halinde açıklanmıştır.