Giriş

Bu dosyada paket kurulumu ve fonksiyonlara ilişkin bilgiler yer almaktadır.

# Paket kurulumu yalnızca bir kez yapılır:
# install.packages("CTT")
# install.packages("tidyverse")
# install.packages("devtools")

# Paketler her R oturumunda aktif edilir:
# library(CTT)
# library(tidyverse)
# library(devtools)

# GitHub üzerinden paket kurulumu:
# devtools::install_github("dr-JT/semoutput", force = TRUE)

Veri Çerçeveleri

byrow = TRUE olması, veri setinin satır satır doldurulmasını sağlar.

x <- data.frame(
  matrix(
    c(
      0,0,0,0,0,
      0,0,0,0,0,
      0,0,0,0,1,
      0,0,0,1,1,
      0,0,1,1,1,
      0,1,1,1,1,
      1,1,1,1,1,
      1,0,1,1,1,
      0,0,0,1,1,
      0,1,1,1,1
    ),
    nrow = 10,
    ncol = 5,
    byrow = TRUE,
    dimnames = list(
      paste0("P", 1:10),
      paste0("I", 1:5)
    )
  )
)

x
##     I1 I2 I3 I4 I5
## P1   0  0  0  0  0
## P2   0  0  0  0  0
## P3   0  0  0  0  1
## P4   0  0  0  1  1
## P5   0  0  1  1  1
## P6   0  1  1  1  1
## P7   1  1  1  1  1
## P8   1  0  1  1  1
## P9   0  0  0  1  1
## P10  0  1  1  1  1

Güvenirlik Analizi

# CTT paketi kurulu ve aktifse çalışır:
# library(CTT)

# guvenirlik <- reliability(x, itemal = TRUE)
# guvenirlik$nItem
# guvenirlik$nPerson
# guvenirlik$alpha
# guvenirlik$scaleMean
# guvenirlik$scaleSD

Aynı İsimli Fonksiyonlar

Farklı paketlerde aynı isimli fonksiyonlar bulunabilir. Belirli bir paketin fonksiyonunu kullanmak için paketadi::fonksiyon biçimi kullanılır.

# library(psych)

# ?cohen.d
# help(cohen.d)

# Belirli paketteki fonksiyonu çağırma:
# psych::cohen.d()

Atıf Yapma

# Bir pakete nasıl atıf yapılacağını gösterir:
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},
##   }

Rastgele Sayı Üretme

set.seed(50)

rnorm(50)
##  [1]  0.54966989 -0.84160374  0.03299794  0.52414971 -1.72760411 -0.27786453
##  [7]  0.36082844 -0.59091244  0.97559055 -1.44574995  0.29520677  0.55475223
## [13] -0.49863554  0.19573384 -0.45554055 -0.36285547 -0.15681338 -0.76525139
## [19] -1.16601736 -0.32342568 -0.34992735 -0.58689714 -1.58987765  1.68955955
## [25]  0.56358364  2.66763339  0.35653495 -0.36212039  0.56874633  0.02867454
## [31]  0.19902339 -0.85142228 -1.13044947  0.59724896 -1.09604786  0.01909655
## [37]  0.41619898  1.83967570  0.40618657  0.39322175  0.10955641 -0.41341885
## [43]  0.11179591 -2.89232140  0.09534935  0.49988990  0.94937215 -1.65840096
## [49] -1.48161964 -0.49068623

set.seed() aynı rastgele sayıların tekrar üretilebilmesini sağlar.

set.seed(50)

rnorm(
  n = 50,
  mean = 10,
  sd = 5
)
##  [1] 12.748349  5.791981 10.164990 12.620749  1.361979  8.610677 11.804142
##  [8]  7.045438 14.877953  2.771250 11.476034 12.773761  7.506822 10.978669
## [15]  7.722297  8.185723  9.215933  6.173743  4.169913  8.382872  8.250363
## [22]  7.065514  2.050612 18.447798 12.817918 23.338167 11.782675  8.189398
## [29] 12.843732 10.143373 10.995117  5.742889  4.347753 12.986245  4.519761
## [36] 10.095483 12.080995 19.198378 12.030933 11.966109 10.547782  7.932906
## [43] 10.558980 -4.461607 10.476747 12.499449 14.746861  1.707995  2.591902
## [50]  7.546569

Aynı işlem daha kısa biçimde de yazılabilir:

set.seed(50)

rnorm(50, 10, 5)
##  [1] 12.748349  5.791981 10.164990 12.620749  1.361979  8.610677 11.804142
##  [8]  7.045438 14.877953  2.771250 11.476034 12.773761  7.506822 10.978669
## [15]  7.722297  8.185723  9.215933  6.173743  4.169913  8.382872  8.250363
## [22]  7.065514  2.050612 18.447798 12.817918 23.338167 11.782675  8.189398
## [29] 12.843732 10.143373 10.995117  5.742889  4.347753 12.986245  4.519761
## [36] 10.095483 12.080995 19.198378 12.030933 11.966109 10.547782  7.932906
## [43] 10.558980 -4.461607 10.476747 12.499449 14.746861  1.707995  2.591902
## [50]  7.546569

Fonksiyon Oluşturma

kare_al <- function(sayi) {
  sayi * sayi
}

kare_al(5)
## [1] 25
us_al <- function(taban, us) {
  taban^us
}

us_al(5, 6)
## [1] 15625

Günün Sorusu

Alan Hesabı

dikdortgen <- function(en = 5, boy = 10) {
  alan <- en * boy
  cevre <- 2 * en + 2 * boy
  kosegen <- sqrt(en^2 + boy^2)

  cikti <- c(
    alan = alan,
    cevre = cevre,
    kosegen = kosegen
  )

  cikti
}

dikdortgen(en = 5, boy = 10)
##     alan    cevre  kosegen 
## 50.00000 30.00000 11.18034

Ortalama

sayilar <- c(1, 2, 3)

mean(sayilar)
## [1] 2
avg <- function(x, y) {
  toplam <- sum(x:y)
  ort <- toplam / length(x:y)

  return(ort)
}

avg(1, 1000)
## [1] 500.5

Alıştırmalar

Temel İşlemler

8 + 12
## [1] 20
8^2
## [1] 64
(5 + 5) / 2
## [1] 5
sqrt(36)
## [1] 6

Daire Alanı

Burada daire alanı formülü:

\[ A = \pi r^2 \]

şeklindedir.

daire_alan <- function(r, pi_degeri = pi) {
  pi_degeri * r^2
}

yaricap_5 <- daire_alan(5)
yaricap_10 <- daire_alan(10)
yaricap_15 <- daire_alan(15)

yaricap_5
## [1] 78.53982
yaricap_10
## [1] 314.1593
yaricap_15
## [1] 706.8583

Mantıksal Karşılaştırmalar

yaricap_5 < yaricap_10
## [1] TRUE
yaricap_10 > yaricap_15
## [1] FALSE

Eşitlik karşılaştırması için = değil, == kullanılır:

yaricap_5 == yaricap_15
## [1] FALSE

Eşit olmama durumu:

yaricap_15 != yaricap_10
## [1] TRUE

Çalışma Alanındaki Nesneler

ls()
##  [1] "avg"        "daire_alan" "dikdortgen" "kare_al"    "sayilar"   
##  [6] "us_al"      "x"          "yaricap_10" "yaricap_15" "yaricap_5"

Çalışma alanını temizlemek için:

# Dikkat: Bu komut bütün nesneleri siler.
# rm(list = ls())

Z Puanı Hesaplama

\[ z = \frac{X - \mu}{\sigma} \]

z_puan <- function(x = 56, ort, std.sapma) {
  (x - ort) / std.sapma
}
z_puan(x = 56, ort = 40, std.sapma = 4)
## [1] 4
z_puan(x = 56, ort = 40, std.sapma = 8)
## [1] 2
z_puan(x = 56, ort = 40, std.sapma = 16)
## [1] 1
z_puan(x = 56, ort = 40, std.sapma = 32)
## [1] 0.5

Paket Kurma ve Aktifleştirme

# Paketi yalnızca bir kez kur:
# install.packages("data.table")

# Her oturumda paketi aktif et:
# library(data.table)

# library(foreign)

Çalışma Dizini

getwd()
## [1] "/Users/ahmetcaliskan/Desktop/OLC731_R_ile_veri_analizi"

Çalışma dizinini değiştirmek için:

# Windows örneği:
# setwd("D:/desktop/R_Giris")

Normal Dağılımdan Veri Üretme

set.seed(1000)

uretim <- rnorm(
  n = 100,
  mean = 5,
  sd = 10
)

mean(uretim)
## [1] 5.163792
sd(uretim)
## [1] 10.06594
hist(
  uretim,
  main = "Üretilen Verinin Histogramı",
  xlab = "Değerler",
  col = "lightblue",
  border = "white"
)