R Paketler

R Paketler

  • R’yi yüklediğinizde, veri işleme ve istatistiksel analiz seçenekleri de dahil olmak üzere bir dizi fonksiyona erişebilirsiniz. Varsayılan kurulumda yer alan fonksiyonlar genellikle Temel R/Base R olarak adlandırılır ve birçok Temel R fonksiyonunu gösteren faydalı bir cheatsheet sayfası vardır 🔗cheatsheet

  • Temel R telefonunuzda gelen varsayılan uygulamalar, paketleri ise ayrıca indirmeniz gereken ek uygulamalar olarak düşünmek faydalı olabilir.

  • R fonksiyonları ayrı paketler halinde düzenlenmişlerdir. Böylece gerekli paketlerle çalışarak daha az bellek kullanımı ve hızlı işlem gücü sağlanır.

  • Bu paketlerin bir başka avantajı da yazılan fonksiyonlardan oluşan paketlerin CRAN’den temin edilerek yüklenebilmesidir.

  • Her paketin bir yaratıcısı ve kendisine ait bir yardım dosyası bulunur.

# paket yukleme
install.packages("CTT")
# paket aktive etme
library(CTT)
  • Paket yükleme işlemi Rstudio’da yer alan menüler aracılığı ile de yapılabilmektedir.

  • R paketleri R fonksiyonlarının, verilerinin ve iyi derlenmiş bir formatta kodların kombinasyonlarından oluşmaktadır. library() komutu ile kişisel kütüphanenizdeki yüklü paketleri görebilirsiniz.

  • Sadece temel pakette 1000’den fazla fonksiyon bulunmaktadır.

# temel paket fonksiyonlarina ulasimak icin  
fonksiyonlar <-  builtins()
length(fonksiyonlar)
[1] 1407
fonksiyonlar[910:920]
 [1] "default.stringsAsFactors" "declare"                 
 [3] "debugonce"                "debuggingState"          
 [5] "debug"                    "date"                    
 [7] "data.matrix"              "data.frame"              
 [9] "data.class"               "cut.POSIXt"              
[11] "cut.default"             

yükle-etkinleştir

tidyverse paketini yükleme

  • Bir paketi kullanabilmek için önce onu yüklemeniz gerekir. Aşağıdaki kod, bu derste çok sık kullanacağımız bir paket olan tidyverse paketini yükler.
install.packages("tidyverse")
  • Bir paketi yalnızca bir kez yüklemeniz gerekir, ancak R’yi her başlattığınızda kullanmak istediğiniz paketleri etkinleştirmeniz gerekir, benzer şekilde telefonunuza bir uygulamayı bir kez yüklemeniz gerekir, ancak her kullanmak istediğinizde açmanız gerekir.
!!!

UYARI: WARNING: Rtools is required to build R packages” gibi bir hata mesajı alırsanız, [Rtools] (https://cran.r-project.org/bin/windows/Rtools/) adlı ekstra bir yazılım indirmeniz ve yüklemeniz gerekebilir.

tidyverse etkinleştir

  • Tidyverse’i etkinleştirmek için aşağıdaki kodu çalıştırın.
library(tidyverse)
Show in New Window
── Attaching core tidyverse packages ────── tidyverse 2.0.0 ──
✔ forcats   1.0.0     ✔ readr     2.1.5
✔ ggplot2   3.5.1     ✔ stringr   1.5.1
✔ lubridate 1.9.3     ✔ tibble    3.2.1
✔ purrr     1.0.2     ✔ tidyr     1.3.1
── Conflicts ──────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
✖ MASS::select()  masks dplyr::select()
ℹ Use the conflicted package to force all conflicts to become errors
  • Bir hata mesajı gibi görünen bir şey alacaksınız - öyle değil. Bu sadece R’nin size ne yaptığını anlatmasıdır.

  • Şimdi tidyverse paketini etkinleştirdiğimize göre, içerdiği fonksiyonlardan herhangi birini kullanabiliriz, ancak unutmayın, R’yi her başlattığınızda library() fonksiyonunu çalıştırmanız gerekir.

Paket yükleme yaygın hatalar

  1. Bazı paketler daha yeni bir R sürümü gerektirir bu nedenler R’yi düzenli olarak en son sürüme güncelleyin. Ayrıca güncelledikten sonra eski R versiyonlarını bilgisayarınızdan kaldırınız.

  2. Birden fazla R sürümünüz olduğunda ya da bilgisyarınızda birden fazla kullanıcı olduğunda “Permission Denied” hatası alabilirsiniz. Bu sorundan kurtalmak için eski R versiyonlarını bilgisayarınızdan kaldırınız ve/ve ya R’i yönetici olarak çalıştırınız.

  3. Birçok R paketi diğer paketlere bağlıdır ve bu bağımlı olduğu paketler yüklenmez veya güncellenmezse kurulum başarısız olur. R paketlerinizi de güncel tutun.

  4. Rcpp veya rJava gibi bazı R paketleri harici sistem kütüphanelerine bağlıdır. Eğer bunlar sisteminizde yüklü değilse, paket kurulumu başarısız olur. Hata mesajlarını dikkatli okuyunuz.

  5. Bazen paket depoları (CRAN) geçici olarak kapalı olabilir veya ağ sorunları bunlara erişimi engelleyebilir. Bu durumda internet bağlantınızı kontrol edin. Eğer stabilse, farklı bir yolla yüklemeyi deneyin.

  6. Eski paketler arşivlenmiş veya kullanımdan kaldırılmış olabilir ve CRAN üzerinden kurulum için mevcut olmayabilir. Eski sürümler için CRAN arşivini kontrol edip, cranden indirip zip ya da tar.zg uzantılı paketi yükleyebilirsiniz.

  7. Bazen indirilen paketlerin önbelleği bozularak kurulum hatalarına yol açabilir. İndirilen paketler için geçici dizini silerek veya çalıştırarak önbelleği temizleyerek yükleyebilirsiniz.

install.packages("your_package", clean = TRUE)
  1. Büyük paketlerin veya çok sayıda bağımlı olduğu paket olan paketlerde yükleme uzun sürebilir veya bellek kısıtlamaları nedeniyle başarısız olabilir. İşlemi paralelleştirerek kurulumu hızlandırmak için Ncpus argümanı kullanılabilir.
install.packages("your_package", Ncpus = parallel::detectCores() - 1)

Github paketleri yükleme

  • Bazı R paketleri github üzerinden yayınlanmaktadır. Bu paketleri standart yollarla yükleyemiyiz. Bu paketleri yüklemek için ilk olarak devtools paketinin yüklü olmasına ihtiyaç vardır.

  • Bu paketlere bir örnek yapısal eşitlik modelleri ile ilgili APA formatında tablolar üreten semtools verilebilir. Paketin github sayfası 🔗linkte yer almaktadır. Paketin yüklenmesi için örnek kod aşağıda verilmiştir.

devtools::install_github("dr-JT/semoutput")

Yardım Sayfaları

  • R’da temel ve diğer paketlerde yer alan fonksiyonların işlevleri görmek için yardım sayfalarını inceleyebilirsiniz. ? ve help() fonksiyonları aynı işleve sahiptir.
?is.na

help(sqrt)
  • Örneğin CTT paketini hem yüklediniz hem de etkinleştirdiniz. Paket fonksiyon ve veri içeriğini aşağıdaki komutlarla görebilirsiniz.
# install.packages(CTT)
library(CTT)
ls("package:CTT") 
data(package = "CTT") # yeni bir sekmede acilir.
?reliability
  • Etkinleştirdiğiniz paketlerde yer alan fonksiyonların yardım sayfalarına ulaşabilirsiniz.

Paket çakışmaları

  • Daha da fazla fonksiyona sahip binlerce farklı R paketi vardır. Ne yazık ki, bazen farklı paketler aynı fonksiyon isimlerine sahiptir. Örneğin, dplyr ve MASS paketlerinin her ikisi de select() adında bir fonksiyona sahiptir. Bu paketlerin her ikisini de etkinleştirirseniz, R size bir çakışma olduğunu söyleyen bir uyarı üretecektir.
library(dplyr)
library(MASS)
Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union


Attaching package: ‘MASS’

The following object is masked from ‘package:dplyr’:

    select
  • Bu durumda, R size dplyr paketindeki select() fonksiyonunun aynı isimli başka bir fonksiyon tarafından gizlendiğini (veya ‘maskelendiğini’) söylüyor. Eğer select() fonksiyonunu kullanmayı deneseydiniz, R en son yüklenen paketteki fonksiyonu kullanacaktı - bu durumda MASS fonksiyonunu kullanacaktı.

  • Belirli bir fonksiyon için hangi paketi kullanmak istediğinizi belirtmek istiyorsanız, örneğin package::function biçiminde kod kullanabilirsiniz:

dplyr::select()
MASS::select()

Paket Güncelleme

  • R ve R Studio güncellemelerine ek olarak, paketlerin yazarları da bazen kodlarını günceller. Bu, bir pakete fonksiyon eklemek için olabileceği gibi hataları düzeltmek için de olabilir. Kaçınılması gereken bir şey, yüklü bir paketi istemeden güncellemektir.

  • install.packages() fonksiyonunu çalıştırdığınızda, her zaman paketin en son sürümü yüklenir ve yüklemiş olabileceğiniz eski sürümlerin üzerine yazılır. Bazen bu bir sorun teşkil etmez, ancak bazen paket önemli ölçüde değiştiği için güncellemenin kodunuzun artık çalışmadığı anlamına geldiğini görürsünüz. Bir paketin eski bir sürümüne geri dönmek mümkündür ancak yine de bundan kaçınmaya çalışın.

Bir paketin üzerine yanlışlıkla daha sonraki bir sürümün yazılmasını önlemek için, sizin veya bir başkasının kodu yanlışlıkla çalıştırması ihtimaline karşı analiz komut dosyalarınıza install.packages() i asla dahil etmemelisiniz.

R ve RStudio’ya nasıl alıntı yapılır

  • R’a atıfta bulunmanız ve referans vermeniz gereken bilimsel bir rapor yazmaktan biraz uzak olabilirsiniz, ancak zamanı geldiğinde bunu onu geliştiren insanlara (çoğu ücretsiz!) kredi vermek için yapmak önemlidir. R, RStudio ve kullandığınız paketler için ayrı alıntılar sağlamalısınız.

  • Kullandığınız R sürümü için atıf almak için, size her zaman en son atıfı sağlayacak olan citation() fonksiyonunu çalıştırmanız yeterlidir.

citation()
To cite R in publications use:

  R Core Team (2024). _R: A Language and Environment for Statistical
  Computing_. R Foundation for Statistical Computing, Vienna, Austria.
  <https://www.R-project.org/>.

A BibTeX entry for LaTeX users is

  @Manual{,
    title = {R: A Language and Environment for Statistical Computing},
    author = {{R Core Team}},
    organization = {R Foundation for Statistical Computing},
    address = {Vienna, Austria},
    year = {2024},
    url = {https://www.R-project.org/},
  }

We have invested a lot of time and effort in creating R, please cite it
when using it for data analysis. See also 'citation("pkgname")' for
citing R packages.
  • Kullandığınız herhangi bir paket için atıf oluşturmak için, atıf yapmak istediğiniz paketin adıyla birlikte citation() işlevini de kullanabilirsiniz.
citation("tidyverse")
To cite package 'tidyverse' in publications use:

  Wickham H, Averick M, Bryan J, Chang W, McGowan LD, François R,
  Grolemund G, Hayes A, Henry L, Hester J, Kuhn M, Pedersen TL, Miller
  E, Bache SM, Müller K, Ooms J, Robinson D, Seidel DP, Spinu V,
  Takahashi K, Vaughan D, Wilke C, Woo K, Yutani H (2019). "Welcome to
  the tidyverse." _Journal of Open Source Software_, *4*(43), 1686.
  doi:10.21105/joss.01686 <https://doi.org/10.21105/joss.01686>.

A BibTeX entry for LaTeX users is

  @Article{,
    title = {Welcome to the {tidyverse}},
    author = {Hadley Wickham and Mara Averick and Jennifer Bryan and Winston Chang and Lucy D'Agostino McGowan and Romain François and Garrett Grolemund and Alex Hayes and Lionel Henry and Jim Hester and Max Kuhn and Thomas Lin Pedersen and Evan Miller and Stephan Milton Bache and Kirill Müller and Jeroen Ooms and David Robinson and Dana Paige Seidel and Vitalie Spinu and Kohske Takahashi and Davis Vaughan and Claus Wilke and Kara Woo and Hiroaki Yutani},
    year = {2019},
    journal = {Journal of Open Source Software},
    volume = {4},
    number = {43},
    pages = {1686},
    doi = {10.21105/joss.01686},
  }
  • Kullandığınız RStudio sürümüne ait alıntıyı oluşturmak için RStudio.Vesion() fonksiyonunu kullanabilirsiniz:
RStudio.Version()
  • Son olarak, yöntem bölümünüzün yazımında bunun nasıl görünebileceğine dair bir örnek:

Analiz R (R Core Team, 2020), RStudio (Rstudio Team, 2020) ve tidyverse paketi (Wickham, 2017) kullanılarak gerçekleştirilmiştir.

  • Belirtildiği gibi, bunu hemen yapmak zorunda kalmayabilirsiniz; ancak, yapmanız gerektiğinde bunu göz önünde bulundurmanız önemli. Açık kaynak topluluğuna katkılarından dolayı kredi vermek, emeğe saygı açısından büyük bir öneme sahiptir.

  • Ayrıca Rmarkdownun citation aracı ile bunu yapmak oldukça kolay !