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. PDF Dosyasını Görüntüle
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.
# CTT paketi yüklü değilse yükle
if (!requireNamespace("CTT", quietly = TRUE)) {
install.packages("CTT")
}
# Paketi yükle ve kullan
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 ulaşmak için
fonksiyonlar <- builtins()
length(fonksiyonlar)
## [1] 1407
if (!requireNamespace("tidyverse", quietly = TRUE)) {
install.packages("tidyverse")
}
#Paket yükleme Yaygın Hatalar
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.
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.
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.
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.
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.
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.
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.
#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.
#Yardım * Kullanılacak olan paket veya fonksiyonlar ve işlevlerinin anlaşılması için yardım sayfası kullanılabilir.
?mean
## starting httpd help server ... done
help(sqrt)
#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)
##
## 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
library(MASS)
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
dplyr::select(mtcars, mpg, cyl)
## mpg cyl
## Mazda RX4 21.0 6
## Mazda RX4 Wag 21.0 6
## Datsun 710 22.8 4
## Hornet 4 Drive 21.4 6
## Hornet Sportabout 18.7 8
## Valiant 18.1 6
## Duster 360 14.3 8
## Merc 240D 24.4 4
## Merc 230 22.8 4
## Merc 280 19.2 6
## Merc 280C 17.8 6
## Merc 450SE 16.4 8
## Merc 450SL 17.3 8
## Merc 450SLC 15.2 8
## Cadillac Fleetwood 10.4 8
## Lincoln Continental 10.4 8
## Chrysler Imperial 14.7 8
## Fiat 128 32.4 4
## Honda Civic 30.4 4
## Toyota Corolla 33.9 4
## Toyota Corona 21.5 4
## Dodge Challenger 15.5 8
## AMC Javelin 15.2 8
## Camaro Z28 13.3 8
## Pontiac Firebird 19.2 8
## Fiat X1-9 27.3 4
## Porsche 914-2 26.0 4
## Lotus Europa 30.4 4
## Ford Pantera L 15.8 8
## Ferrari Dino 19.7 6
## Maserati Bora 15.0 8
## Volvo 142E 21.4 4
fit <- lm(mpg ~ ., data = mtcars)
MASS::stepAIC(fit, direction = "both")
## Start: AIC=70.9
## mpg ~ cyl + disp + hp + drat + wt + qsec + vs + am + gear + carb
##
## Df Sum of Sq RSS AIC
## - cyl 1 0.0799 147.57 68.915
## - vs 1 0.1601 147.66 68.932
## - carb 1 0.4067 147.90 68.986
## - gear 1 1.3531 148.85 69.190
## - drat 1 1.6270 149.12 69.249
## - disp 1 3.9167 151.41 69.736
## - hp 1 6.8399 154.33 70.348
## - qsec 1 8.8641 156.36 70.765
## <none> 147.49 70.898
## - am 1 10.5467 158.04 71.108
## - wt 1 27.0144 174.51 74.280
##
## Step: AIC=68.92
## mpg ~ disp + hp + drat + wt + qsec + vs + am + gear + carb
##
## Df Sum of Sq RSS AIC
## - vs 1 0.2685 147.84 66.973
## - carb 1 0.5201 148.09 67.028
## - gear 1 1.8211 149.40 67.308
## - drat 1 1.9826 149.56 67.342
## - disp 1 3.9009 151.47 67.750
## - hp 1 7.3632 154.94 68.473
## <none> 147.57 68.915
## - qsec 1 10.0933 157.67 69.032
## - am 1 11.8359 159.41 69.384
## + cyl 1 0.0799 147.49 70.898
## - wt 1 27.0280 174.60 72.297
##
## Step: AIC=66.97
## mpg ~ disp + hp + drat + wt + qsec + am + gear + carb
##
## Df Sum of Sq RSS AIC
## - carb 1 0.6855 148.53 65.121
## - gear 1 2.1437 149.99 65.434
## - drat 1 2.2139 150.06 65.449
## - disp 1 3.6467 151.49 65.753
## - hp 1 7.1060 154.95 66.475
## <none> 147.84 66.973
## - am 1 11.5694 159.41 67.384
## - qsec 1 15.6830 163.53 68.200
## + vs 1 0.2685 147.57 68.915
## + cyl 1 0.1883 147.66 68.932
## - wt 1 27.3799 175.22 70.410
##
## Step: AIC=65.12
## mpg ~ disp + hp + drat + wt + qsec + am + gear
##
## Df Sum of Sq RSS AIC
## - gear 1 1.565 150.09 63.457
## - drat 1 1.932 150.46 63.535
## <none> 148.53 65.121
## - disp 1 10.110 158.64 65.229
## - am 1 12.323 160.85 65.672
## - hp 1 14.826 163.35 66.166
## + carb 1 0.685 147.84 66.973
## + vs 1 0.434 148.09 67.028
## + cyl 1 0.414 148.11 67.032
## - qsec 1 26.408 174.94 68.358
## - wt 1 69.127 217.66 75.350
##
## Step: AIC=63.46
## mpg ~ disp + hp + drat + wt + qsec + am
##
## Df Sum of Sq RSS AIC
## - drat 1 3.345 153.44 62.162
## - disp 1 8.545 158.64 63.229
## <none> 150.09 63.457
## - hp 1 13.285 163.38 64.171
## + gear 1 1.565 148.53 65.121
## + cyl 1 1.003 149.09 65.242
## + vs 1 0.645 149.45 65.319
## + carb 1 0.107 149.99 65.434
## - am 1 20.036 170.13 65.466
## - qsec 1 25.574 175.67 66.491
## - wt 1 67.572 217.66 73.351
##
## Step: AIC=62.16
## mpg ~ disp + hp + wt + qsec + am
##
## Df Sum of Sq RSS AIC
## - disp 1 6.629 160.07 61.515
## <none> 153.44 62.162
## - hp 1 12.572 166.01 62.682
## + drat 1 3.345 150.09 63.457
## + gear 1 2.977 150.46 63.535
## + cyl 1 2.447 150.99 63.648
## + vs 1 1.121 152.32 63.927
## + carb 1 0.011 153.43 64.160
## - qsec 1 26.470 179.91 65.255
## - am 1 32.198 185.63 66.258
## - wt 1 69.043 222.48 72.051
##
## Step: AIC=61.52
## mpg ~ hp + wt + qsec + am
##
## Df Sum of Sq RSS AIC
## - hp 1 9.219 169.29 61.307
## <none> 160.07 61.515
## + disp 1 6.629 153.44 62.162
## + carb 1 3.227 156.84 62.864
## + drat 1 1.428 158.64 63.229
## - qsec 1 20.225 180.29 63.323
## + cyl 1 0.249 159.82 63.465
## + vs 1 0.249 159.82 63.466
## + gear 1 0.171 159.90 63.481
## - am 1 25.993 186.06 64.331
## - wt 1 78.494 238.56 72.284
##
## Step: AIC=61.31
## mpg ~ wt + qsec + am
##
## Df Sum of Sq RSS AIC
## <none> 169.29 61.307
## + hp 1 9.219 160.07 61.515
## + carb 1 8.036 161.25 61.751
## + disp 1 3.276 166.01 62.682
## + cyl 1 1.501 167.78 63.022
## + drat 1 1.400 167.89 63.042
## + gear 1 0.123 169.16 63.284
## + vs 1 0.000 169.29 63.307
## - am 1 26.178 195.46 63.908
## - qsec 1 109.034 278.32 75.217
## - wt 1 183.347 352.63 82.790
##
## Call:
## lm(formula = mpg ~ wt + qsec + am, data = mtcars)
##
## Coefficients:
## (Intercept) wt qsec am
## 9.618 -3.917 1.226 2.936
#Fonksiyonlar
*Fonksiyonların çalışması için girdilerinin olması gerekmektedir. Fonksiyonlar girdileri ile yaptıkları işlem sonucunda bir çıktı oluştururlar.
Fonksiyonlar girdileri o fonksiyonun çalışması için önceden belirlenen argümanlar ve o argümanların değerlerinden oluşur. (dilbilimle ilgileniyorsanız, bunları bir özne ve nesne gerektiren fiiller olarak düşünmek isteyebilirsiniz)
Fonksiyonların kullanımında üç noktaya dikkat edilmelidir.
Bir fonksiyonun aldığı tüm argümanlara yardım dokümantasyonunu kullanarak ?function formatını kullanarak bakabilirsiniz. Bazı argümanlar zorunlu, bazıları ise isteğe bağlıdır. İsteğe bağlı bağımsız değişkenler, herhangi bir değer girmezseniz genellikle varsayılan/olağan (normalde yardım belgelerinde belirtilen) bir değer kullanır.
Örnek olarak, normal dağılıma sahip bir sayı kümesini rastgele üreten rnorm() fonksiyonunun yardım belgelerine bakalım.
Bir fonksiyonun aldığı tüm argümanlara yardım dokümantasyonunu kullanarak ?function formatını kullanarak bakabilirsiniz. Bazı argümanlar zorunlu, bazıları ise isteğe bağlıdır. İsteğe bağlı bağımsız değişkenler, herhangi bir değer girmezseniz genellikle varsayılan/olağan (normalde yardım belgelerinde belirtilen) bir değer kullanır.
rnorm(n = 6, mean = 3, sd = 1)
## [1] 2.435209 4.634992 2.146012 2.144595 4.009324 2.273714
rnorm(6, 3, 1)
## [1] 3.020464 2.281210 4.095598 2.714119 2.127344 1.238728
#Kişisel tanımlı fonksiyon
sayi<- 4
sayi* sayi
## [1] 16
# kare alma fonksiyonu
kare_al <- function(sayi){
return(sayi*sayi)
}
kare_al(4)
## [1] 16
#üs alma
üs_al<- function(x,us){
return(x^us)
}
üs_al(3,4)
## [1] 81
myfunc <- function(x,y)
{
a <- x+y
b <- x* y
return(a*b)
}
myfunc(3,4)
## [1] 84