1 Giriş

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

  • Not “library” fonksiyonu ile paketler aktif edilir. “install.packages” fonksiyonu ile paket indirilebilir.
#install.packages("CTT")
#library(CTT)
#library(tidyverse)
#library(devtools)
#devtools::install_github("dr-JT/semoutput",force = T)
#devtools::install_github("hadley/emo")
#library(emo)

2 Veri Çerçeveleri

  • byrow=T veya byrow=F olması durumu veri setinin nasıl doldurulacağını değiştiriyor.
#e.g. 1   Scored input (data frame is preferred)
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(c(paste("P",c(1:10),sep="")),c(paste("I",c(1:5),sep="")))))
guvenirlik <- reliability(x, itemal=TRUE)
## You will find additional options and better formatting using itemAnalysis().
guvenirlik$nItem
## [1] 5
guvenirlik$nPerson
## [1] 10
guvenirlik$alpha
## [1] 0.8157895
guvenirlik$scaleMean
## [1] 2.5
guvenirlik$scaleSD
## [1] 1.779513
# To see more item statistics
#str(reliability(x,itemal=TRUE))

3 Aynı İsimli Fonksiyonlar

Bazı paketlerde fonksiyon isimleri ayrı olabilir. Bu fonksiyonlardan biri kullanılacak olursa aynı isimleri fonksiyonlardan, en son aktifleştirilen paketteki fonksiyon çağrılır. Farklı paketteki fonksiyonu çağırmak için “paketadi::fonksiyon” gibi yazmalıyız.

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

4 Atıf Yapma

#pakete atif yapmak
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},
##   }
#FONKSIYONLAR
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(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
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
#TAB ile fonksiyonu bulma
#reliability()

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

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

5 Günün Sorusu

5.1 Alan Hesabı Birinci Yol

#ALAN HESABI 1
dikdortgen <- function(en=5,boy=10){
  alan <- en*boy
  cevre <- 2*en + 2*boy # (en+boy)*2
  kosegen <- sqrt(en*en + boy*boy)
  cikti <- c(alan,cevre,kosegen)
  names(cikti) <- c("alan","cevre","kosegen")
  cikti
}
dikdortgen(en=5,boy=10)
##     alan    cevre  kosegen 
## 50.00000 30.00000 11.18034

5.2 Alan Hesabı İkinci Yol

#ALAN HESABI 2 - Tugay
dikdortgen <- function(uk=10,kk=5){
  cevre <- (uk+kk)*2
  alan <- uk*kk
  kosegen <- sqrt(uk^2 + kk^2)
  print(list(
    cevre = cevre,
    alan = alan,
    kosegen = kosegen))
}
dikdortgen(uk = 10,kk = 5)  
## $cevre
## [1] 30
## 
## $alan
## [1] 50
## 
## $kosegen
## [1] 11.18034
#Ortalama
sayilar <- c(1,2,3)
mean(sayilar)  
## [1] 2
#AVG fonksiyonu olusturma
avg <- function(x,y){
  toplam <- sum(x:y)
  ort <- toplam/length(x:y)
  return(ort)
}
avg(1,1000)
## [1] 500.5
#rm(list = ls())
#getwd()

6 Alıştırmalar

  1. Aşağıdaki işlemleri R aracılığıyla yapınız.
  • 8 + 12
 8+12 # + işareti ile toplama işlemi yapılır
## [1] 20
  • \[8^2\]
 8^2 # ^ işareti ile üslü işlemler yapılır.
## [1] 64
  • (5+5)/2
  (5+5)/2 # işlem önceliği için () kullanılır
## [1] 5
  • \[\sqrt{36}\]
sqrt(36) #karekök almak için sqrt fonksiyonu kullanılır
## [1] 6
  1. Birinci problemde yaptığınız işlemlerin yanına yorum satırı ekleyiniz.
  2. Yarıçapı 5cm, 10cm ve 15cm olan dairelerin alanının formül kullanılarak hesaplanabileceği bir komut dosyası oluşturunuz. Bu işlemi yaparken aşağıdaki adımları takip ediniz.
  • r nesnesi oluşturup değer atayınız.
  • \(\pi\) sayısı için 3.14 değeri kullanılabilir, ayrıca \(\pi\) sayısı R’da tanımlı bir değerdir.
  • Alan hesaplamak için formül kullanınız.
  • Her bir dairenin alanını farklı nesneye atayınız.
daire_alan <- function(r,pi=3.14){
  2*pi*r
}
yaricap_5 <- daire_alan(5)
yaricap_10 <- daire_alan(10)
yaricap_15 <- daire_alan(15)
  • Oluşturulan nesneleri mantıksal operatörleri kullanarak karşılaştırınız.
yaricap_5 < yaricap_10
## [1] TRUE
yaricap_10 > yaricap_15
## [1] FALSE
yaricap_5 = yaricap_15
yaricap_15 != yaricap_10
## [1] TRUE
  • ls() fonkisyonu kullanarak çalışma alanınızda kayıtlı nesneleri listeleyiniz.
ls()
##  [1] "avg"        "daire_alan" "dikdortgen" "guvenirlik" "kare_al"   
##  [6] "sayilar"    "us_al"      "x"          "yaricap_10" "yaricap_15"
## [11] "yaricap_5"
  • Yeni bir çalışmaya başlamadan önce rm() fonksiyonuyla çalışma alanınızı temizleyiniz.
rm()
  1. \(\ z = \frac{X - \mu}{\sigma}\) formülünü kullanarak aşağıdaki her bir dağılım için \(\ X = 56\) değerine karşılık gelen \(\text{z}\) puanlarını bulunuz.
# z puanı hesaplama formülünü yazalım. 
z_puan <- function(x = 56, ort,std.sapma){
  (x-ort)/std.sapma
}
  • \({\mu} = 40\) ve \(\sigma = 4\)
z_puan(x = 56, 40, 4)
## [1] 4
  • \({\mu} = 40\) ve \(\sigma = 8\)
z_puan(x = 56, 40, 8)
## [1] 2
  • \({\mu} = 40\) ve \(\sigma = 16\)
z_puan(x = 56, 40, 16)
## [1] 1
  • \({\mu} = 40\) ve \(\sigma = 32\)
z_puan(x = 56, 40, 32)
## [1] 0.5
  • data.table paketini komut yazarak yükleyiniz ve aktif hale getiriniz.
#install.packages("data.table")
library(data.table)
  • foreign paketini Rstudio sağ alt penceredeki Packages sekmesinden gerekli yerleri kullanarak yükleyiniz ve aktif hale getiriniz.
  • Çalışma alanınızı tam adresini komut yazarak sorgulayınız.
getwd()
## [1] "D:/doktora/OLC731"
  • Çalışma alanınızı masaüstünde oluşturduğunuz “R_Giris” klasörü olarak değiştiriniz.
#setwd("D:/desktop/R_Giris)
  • rnorm() fonksiyonunu kullanarak ortalaması 5, standart sapması 10 olan, 100 örneklem büyüklüğünde bir veri seti üretiniz. (set.seed() fonksiyonu ile 1000 değerini kullanınız.)
    • Dağılımın ortalaması ve standart sapmasını bulunuz.
    • Dagılımın histogramını çizginiz.
set.seed(1000)
uretim <- rnorm(100,5,10)
mean(uretim)
## [1] 5.163792
sd(uretim)
## [1] 10.06594
hist(uretim)