HAFTA 2

Matematiksel işlemler ve formüller için chetsheet’e bakmalıyız!

R Paket Yükleme ve Fonksiyonlara Giriş

Bu hafta R’a paket nasıl yüklenir bunu öğrendik. Kod yazarak veya kütüphaneleri kullanarak paket indirilebilir. “install.packages” ile paketi yükledikten sonra bu satırı yorum satırına çevirmeliyiz. Bununla birlikte bir paketi sadece bir defa indirmemiz yeterli ancak R’da işlem yaparken kullanmak istediğimizde paketleri “library” fonksiyonu ile çağırmamız gerekmektedir. (Kitap okuyacağımız zaman kütüpheneden onu almamız gerektiği gibi düşün:) Github paketleri nasıl yükleniyor? Örnek:

# paket yukleme
#install.packages("CTT")
#instalı yoruma çevirmeyi unutma!
# paket aktive etme
library("CTT")

Üç ters tırnak işaretini ekle: Belgede kod bloğunu görmek istersen istenilen bloğun başına ve sonuna üç tane ters tırnak işaretini ´´´ eklemek lazım!

#Github Paketi Yükleme
##devtools::install_github("hadley/emo")
library(emo)
emo::ji("smile")
## 😄 

library(emo)
emo::ji("cry")
## 😢 

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

help(cohen.d)
?cohen.d

## ??cohen.d (yardım için bu komutu kullan!)

reliability fonksiyonunun yardım sayfasından örnek:

library(CTT)
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="")))))
itemAnalysis(x)
##
##Number of Items 
## 5 
##
## Number of Examinees 
## 10 
##
## Coefficient Alpha 
## 0.816 
iA <- itemAnalysis(x, hardFlag=.25, pBisFlag=.15)
iA$itemReport
  itemName itemMean      pBis       bis alphaIfDeleted hard lowPBis
##1       I1      0.2 0.4036037 0.5766551      0.8325792    X        
##2       I2      0.3 0.5299577 0.6984823      0.8027211             
##3       I3      0.5 0.7905694 0.9908318      0.7166667             
##4       I4      0.7 0.7237469 0.9538957      0.7424242             
##5       I5      0.8 0.5995438 0.8566076      0.7827529
str(itemAnalysis(x))
##List of 6
## $ nItem     : int 5
## $ nPerson   : int 10
## $ alpha     : num 0.816
## $ scaleMean : num 2.5
## $ scaleSD   : num 1.78
## $ itemReport:'data.frame':   5 obs. of  5 variables:
##  ..$ itemName      : chr [1:5] "I1" "I2" "I3" "I4" ...
##  ..$ itemMean      : num [1:5] 0.2 0.3 0.5 0.7 0.8
##  ..$ pBis          : num [1:5] 0.404 0.53 0.791 0.724 0.6
##  ..$ bis           : num [1:5] 0.577 0.698 0.991 0.954 0.857
##  ..$ alphaIfDeleted: num [1:5] 0.833 0.803 0.717 0.742 0.783
## - attr(*, "class")= chr "itemAnalysis"
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="")))))
reliability(x, itemal=TRUE)

##You will find additional options and better formatting using itemAnalysis().

## Number of Items 
## 5 

##Number of Examinees 
## 10 

##Coefficient Alpha 
## 0.816 

Güvenirliğe bakalım:

guvenirlik <- reliability(x, itemal=TRUE)

##You will find additional options and better formatting using itemAnalysis().

guvenirlik$nItem
## [1] 5

Paket çakışması: Burası önemli. Farklı paketlerin aynı adlı fonksiyonlara sahip olduğu durumlarda paket çakışması oluyor. Böyle olduğu zaman “package::function” kodu ile hangi paketteki fonksiyonu kullanmayı seçtiğimizi belirtmemiz gerekiyor Örnek;

#pysch ::reliability()
#CTT :: reliability()

R’da Alıntı Yapma/Ref. Gösterme

Bu haftanın önemli konularından biri. Tez yazarken işime çok yarayacak ve daha pratik. Tezimi wordde değil R ile yazar mıyım? Bunu düşüneceğim.

citation("tidyverse")
##To cite package ‘tidyverse’ in publications use:

##  Wickham H, Averick M, Bryan J, Chang W, McGowan LD, Françoi R,
##  Grolemun G, Haye A, Henr L, Heste J, Kuh M, Pederse TL, Mille E,
##  Bach SM, Müll K, Oo ,J, Robins ,D, Seid ,DP, Spi ,V, Takahas ,K,
##  Vaugh ,D, Wil ,C, W ,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çoi and  Garrett Grolemun and  Alex Haye and  Lionel Henr and  Jim Heste and  Max Kuh and  Thomas Lin Pederse and  Evan Mille and  Stephan Milton Bach and  Kirill Müll and , Jeroen Oo and , David Robins and , Dana Paige Seid and , Vitalie Spi and , Kohske Takahas and , Davis Vaugh and , Claus Wil and , Kara W and , Hiroaki Yutani},
##    year = {2019},
##    journal = {Journal of Open Source Software},
##    volume = {4},
##    number = {43},
##    pages = {1686},
##    doi = {10.21105/joss.01686},
## }

Fonksiyonlar

Burası önemli, bana sıkıcı gelse de öğrenmek zorundayım.

Fonksiyon: Belli görevi yerine getirmek için yazılan bir grup komut.Çalıştırması için girdi gerekli. Fonksiyonlar girdileriyle işlem yapıp çıktıları oluşturmaktadır. Fonksiyonlar girdileri o fonksiyonun çalışması için önceden belirlenen argümanlar ve o argümanların değerlerinden oluşur.

Fonksiyonların kullanımında şu üç noktaya dikkat edilmesi gerekiyor:
1-argümanların sırası 2-argümanların olağan (default) değerleri 3-bazı argümanların zorunlu, bazı argümanların opsiyonel olmasıdır.

Örnek:

?rnorm
#Argümanlar bölümünde, her bir argüman için açıklamalar bulunmaktadır. n oluşturmak istediğimiz gözlem sayısı, mean oluşturacağımız veri noktalarının ortalaması ve sd verinin standart sapmasıdır. Ayrıntılar bölümünde, mean ve sd için herhangi bir değer girilmezse, bu değerler için varsayılan olarak 0 ve 1 kullanılacağı belirtilir. n için varsayılan bir değer olmadığından, belirtilmesi gerekir, aksi takdirde kod çalışmaz.

rnorm(10, mean=0, sd=1)

## [1] -0.4070631 -0.5994877 -0.6169035 -1.2416727 -1.1233714 -1.2650525
## [7] -1.4151920 -0.2855333  0.5000354  0.4949472

#Yukarıdaki örnekte bağımsız değişken adlarını tek tek yazdık (örneğin, n, mean, sd), ancak bunu yapmak zorunda değiliz. Aşağıdaki iki kod satırına bakıldığğında her ikisi de aynı sonucu üretecektir (rnorm() fonksiyonunu her çalıştırdığınızda rastgele olduğu için biraz farklı bir sayı kümesi üretir, ancak yine de aynı ortalama ve SD’ye sahip olacaklardır):

## rnorm(n = 6, mean = 3, sd = 1)


## [1] 4.567105 1.463524 4.018413 3.539126 3.401842 3.391835

## rnorm(6, 3, 1)

## [1] 3.733425 2.474895 3.003350 2.396294 3.937576 4.318571

## rnorm(9, 9 , 6)


## [1]  9.8024169 15.3009579 13.0871914 14.5778679 17.6720616  0.7689709
## [7]  8.7455852 11.3454994  9.7422203

#set.seed fonksiyonu rastgele sayı üretecini kontrol ediyor - rastgele sayı üreten herhangi bir fonksiyon kullanıyorsak (rnorm() gibi), set.seed() fonksiyonunu çalıştırmak aynı sonucu veriyor.

{set.seed1} set.seed(50) rnorm(50, mean=10, sd=5)

{set.seedsonuc1} [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} set.seed(100) rnorm(50, mean=10, sd=5)

{set.seedsonuc} [1] 7.4890382 10.6576558 9.6054146 14.4339240 10.5848564 11.5931504 [7] 7.0910466 13.5726636 5.8737029 8.2006893 10.4494307 10.4813723 [13] 8.9918302 13.6992025 10.6168975 9.8534165 8.0557288 12.5542813 [19] 5.4309291 21.5514841 7.8095501 13.8203031 11.3098065 13.8670230 [25] 5.9281044 7.8077472 6.3988922 11.1547227 4.2113527 11.2353800 [31] 9.5444322 18.7868781 9.3103519 9.4440325 6.5499284 8.8910288 [37] 10.9145384 12.0866164 15.3270116 14.8510101 9.4918538 17.0160174 [43] 1.1161218 13.1143370 7.3885832 16.6111548 8.1827984 16.5953287 [49] 10.2188953 0.6067206

Bireysel Fonksiyonlar

Bir fonsiyon tanımlayıp operatör kullanarak atama yapıyoruz. Bu çok önemli.

kare_al <- function(sayi){
  sayi * sayi
}
kare_al(sayi = 3)
[1] 9
ust_al<- function(sayi, us) {
  sayi ^ us
}
ust_al (5, 2)
##[1] 25
avg <- function(n){
  (n*(n+1)/2)
  }
avg(1:1000)
  [1]      1      3      6     10     15     21     28     36     45     55
  [11]     66     78     91    105    120    136    153    171    190    210
  [21]    231    253    276    300    325    351    378    406    435    465
  [31]    496    528    561    595    630    666    703    741    780    820
  [41]    861    903    946    990   1035   1081   1128   1176   1225   1275
  [51]   1326   1378   1431   1485   1540   1596   1653   1711   1770   1830
  [61]   1891   1953   2016   2080   2145   2211   2278   2346   2415   2485
  [71]   2556   2628   2701   2775   2850   2926   3003   3081   3160   3240
  [81]   3321   3403   3486   3570   3655   3741   3828   3916   4005   4095
  [91]   4186   4278   4371   4465   4560   4656   4753   4851   4950   5050
 [101]   5151   5253   5356   5460   5565   5671   5778   5886   5995   6105
 [111]   6216   6328   6441   6555   6670   6786   6903   7021   7140   7260
 [121]   7381   7503   7626   7750   7875   8001   8128   8256   8385   8515
 [131]   8646   8778   8911   9045   9180   9316   9453   9591   9730   9870
 [141]  10011  10153  10296  10440  10585  10731  10878  11026  11175  11325
 [151]  11476  11628  11781  11935  12090  12246  12403  12561  12720  12880
 [161]  13041  13203  13366  13530  13695  13861  14028  14196  14365  14535
 [171]  14706  14878  15051  15225  15400  15576  15753  15931  16110  16290
 [181]  16471  16653  16836  17020  17205  17391  17578  17766  17955  18145
 [191]  18336  18528  18721  18915  19110  19306  19503  19701  19900  20100
 [201]  20301  20503  20706  20910  21115  21321  21528  21736  21945  22155
 [211]  22366  22578  22791  23005  23220  23436  23653  23871  24090  24310
 [221]  24531  24753  24976  25200  25425  25651  25878  26106  26335  26565
 [231]  26796  27028  27261  27495  27730  27966  28203  28441  28680  28920
 [241]  29161  29403  29646  29890  30135  30381  30628  30876  31125  31375
 [251]  31626  31878  32131  32385  32640  32896  33153  33411  33670  33930
 [261]  34191  34453  34716  34980  35245  35511  35778  36046  36315  36585
 [271]  36856  37128  37401  37675  37950  38226  38503  38781  39060  39340
 [281]  39621  39903  40186  40470  40755  41041  41328  41616  41905  42195
 [291]  42486  42778  43071  43365  43660  43956  44253  44551  44850  45150
 [301]  45451  45753  46056  46360  46665  46971  47278  47586  47895  48205
 [311]  48516  48828  49141  49455  49770  50086  50403  50721  51040  51360
 [321]  51681  52003  52326  52650  52975  53301  53628  53956  54285  54615
 [331]  54946  55278  55611  55945  56280  56616  56953  57291  57630  57970
 [341]  58311  58653  58996  59340  59685  60031  60378  60726  61075  61425
 [351]  61776  62128  62481  62835  63190  63546  63903  64261  64620  64980
 [361]  65341  65703  66066  66430  66795  67161  67528  67896  68265  68635
 [371]  69006  69378  69751  70125  70500  70876  71253  71631  72010  72390
 [381]  72771  73153  73536  73920  74305  74691  75078  75466  75855  76245
 [391]  76636  77028  77421  77815  78210  78606  79003  79401  79800  80200
 [401]  80601  81003  81406  81810  82215  82621  83028  83436  83845  84255
 [411]  84666  85078  85491  85905  86320  86736  87153  87571  87990  88410
 [421]  88831  89253  89676  90100  90525  90951  91378  91806  92235  92665
 [431]  93096  93528  93961  94395  94830  95266  95703  96141  96580  97020
 [441]  97461  97903  98346  98790  99235  99681 100128 100576 101025 101475
 [451] 101926 102378 102831 103285 103740 104196 104653 105111 105570 106030
 [461] 106491 106953 107416 107880 108345 108811 109278 109746 110215 110685
 [471] 111156 111628 112101 112575 113050 113526 114003 114481 114960 115440
 [481] 115921 116403 116886 117370 117855 118341 118828 119316 119805 120295
 [491] 120786 121278 121771 122265 122760 123256 123753 124251 124750 125250
 [501] 125751 126253 126756 127260 127765 128271 128778 129286 129795 130305
 [511] 130816 131328 131841 132355 132870 133386 133903 134421 134940 135460
 [521] 135981 136503 137026 137550 138075 138601 139128 139656 140185 140715
 [531] 141246 141778 142311 142845 143380 143916 144453 144991 145530 146070
 [541] 146611 147153 147696 148240 148785 149331 149878 150426 150975 151525
 [551] 152076 152628 153181 153735 154290 154846 155403 155961 156520 157080
 [561] 157641 158203 158766 159330 159895 160461 161028 161596 162165 162735
 [571] 163306 163878 164451 165025 165600 166176 166753 167331 167910 168490
 [581] 169071 169653 170236 170820 171405 171991 172578 173166 173755 174345
 [591] 174936 175528 176121 176715 177310 177906 178503 179101 179700 180300
 [601] 180901 181503 182106 182710 183315 183921 184528 185136 185745 186355
 [611] 186966 187578 188191 188805 189420 190036 190653 191271 191890 192510
 [621] 193131 193753 194376 195000 195625 196251 196878 197506 198135 198765
 [631] 199396 200028 200661 201295 201930 202566 203203 203841 204480 205120
 [641] 205761 206403 207046 207690 208335 208981 209628 210276 210925 211575
 [651] 212226 212878 213531 214185 214840 215496 216153 216811 217470 218130
 [661] 218791 219453 220116 220780 221445 222111 222778 223446 224115 224785
 [671] 225456 226128 226801 227475 228150 228826 229503 230181 230860 231540
 [681] 232221 232903 233586 234270 234955 235641 236328 237016 237705 238395
 [691] 239086 239778 240471 241165 241860 242556 243253 243951 244650 245350
 [701] 246051 246753 247456 248160 248865 249571 250278 250986 251695 252405
 [711] 253116 253828 254541 255255 255970 256686 257403 258121 258840 259560
 [721] 260281 261003 261726 262450 263175 263901 264628 265356 266085 266815
 [731] 267546 268278 269011 269745 270480 271216 271953 272691 273430 274170
 [741] 274911 275653 276396 277140 277885 278631 279378 280126 280875 281625
 [751] 282376 283128 283881 284635 285390 286146 286903 287661 288420 289180
 [761] 289941 290703 291466 292230 292995 293761 294528 295296 296065 296835
 [771] 297606 298378 299151 299925 300700 301476 302253 303031 303810 304590
 [781] 305371 306153 306936 307720 308505 309291 310078 310866 311655 312445
 [791] 313236 314028 314821 315615 316410 317206 318003 318801 319600 320400
 [801] 321201 322003 322806 323610 324415 325221 326028 326836 327645 328455
 [811] 329266 330078 330891 331705 332520 333336 334153 334971 335790 336610
 [821] 337431 338253 339076 339900 340725 341551 342378 343206 344035 344865
 [831] 345696 346528 347361 348195 349030 349866 350703 351541 352380 353220
 [841] 354061 354903 355746 356590 357435 358281 359128 359976 360825 361675
 [851] 362526 363378 364231 365085 365940 366796 367653 368511 369370 370230
 [861] 371091 371953 372816 373680 374545 375411 376278 377146 378015 378885
 [871] 379756 380628 381501 382375 383250 384126 385003 385881 386760 387640
 [881] 388521 389403 390286 391170 392055 392941 393828 394716 395605 396495
 [891] 397386 398278 399171 400065 400960 401856 402753 403651 404550 405450
 [901] 406351 407253 408156 409060 409965 410871 411778 412686 413595 414505
 [911] 415416 416328 417241 418155 419070 419986 420903 421821 422740 423660
 [921] 424581 425503 426426 427350 428275 429201 430128 431056 431985 432915
 [931] 433846 434778 435711 436645 437580 438516 439453 440391 441330 442270
 [941] 443211 444153 445096 446040 446985 447931 448878 449826 450775 451725
 [951] 452676 453628 454581 455535 456490 457446 458403 459361 460320 461280
 [961] 462241 463203 464166 465130 466095 467061 468028 468996 469965 470935
 [971] 471906 472878 473851 474825 475800 476776 477753 478731 479710 480690
 [981] 481671 482653 483636 484620 485605 486591 487578 488566 489555 490545
 [991] 491536 492528 493521 494515 495510 496506 497503 498501 499500 500500

R’ın Çalışma Alanı

Bir türlü öğrenemediğim çalışma alanı ve dizin, bu defa öğreneceğim galiba. Kübra Hoca’nın notlarını buraya alıntılayıp okumalıyım:

Çalışma alanı, nesnelerin ve bilgilerin kaydedildiği alandır. ls() ve objects() fonksiyonları çalışma alanında kayıtlı nesneleri konsolda göstermektedir. ls() fonksiyonu ile nesneleri çağırma işlemi özelleştirilebilir. ls.str() fonksiyonu ise hafızadaki nesneleri ayrıntıları ile göstermektedir.Yeni bir veri seti üzerinde çalışıyorsanız veya son sürümü elde etmeden önce çok sayıda farklı kod denediyseniz, yanlış nesneyi kullanmaktan kaçınmak için ortamı/çalışma alanını temizlemeyi unutmamak iyi bir uygulamadır. Bunu birkaç şekilde yapabilirsiniz. 1-Nesneleri tek tek kaldırmak için konsola rm(nesne_adı) yazılabilir 2-Ortamdaki tüm nesneleri temizlemek için konsolda rm(list = ls()) komutu çalıştırılabilir. 3-Ortamdaki tüm nesneleri temizlemek için ortam bölmesindeki süpürge simgesine de tıklanabilir.

ls()
objects()
[1] "avg"        "guvenirlik" "iA"         "kare_al"    "ust_al"    
[6] "x 

R Çalışma Dizini

En kritik konu, çalışma dizini. Şimdiye kadarki yaşadığım sorunların temelinde bu yatıyor.

R yazılımı Start/Baslangic menusu üzerinden çalıştırıldığında çalışma dizini C:/Users//Documents

Çalışma dizinini sorgulamak için kullanılacak olan fonksiyon

getwd() (get working directory)

Çalışma dizinini değiştirmek için kullanılacak olan fonksiyon

setwd() (set working directory)

İlk derste klasör açıp çalışma dizini ayarlaması yapmıştık.

getwd()

##[1] "C:/Users/huawei/Desktop/OLC731"

Bu işlem Rstudio menusu “Session” sekmesinden ya da CTRL +Shift + H tuşları ile de yapılabilmektedir.

ÇOK ÖNEMLİ: HATA AYIKLAMA İPUÇLARI

Kodlamanın büyük bir kısmı kodunuzun neden çalışmadığını anlamaya çalışmaktır ve bu acemi ya da uzman olmanız fark etmeksizin geçerlidir.

Bu ders boyunca ilerlerken yaptığınız hataların ve bunları nasıl düzelttiğinizin kaydını tutmalısınız.

Her bölümde dikkat etmeniz gereken bir dizi yaygın hata sunacağız, ancak şüphesiz kendiniz de yeni hatalar yapacaksınız (ve düzelteceksiniz!).

Kullanmaya çalıştığınız fonksiyonlar için doğru paketleri yüklediniz mi? Çok yaygın bir hata, paketi yüklemek için kodu yazmaktır, örneğin library(tidyverse) ancak daha sonra çalıştırmayı unutmaktır.

Bir yazım hatası mı yaptınız? Unutmayın data ile DATA aynı şey değildir ve t.test ile t_test aynı şey değildir.

Bir paket çakışması mı var? Paket ve fonksiyonu package::function ile belirtmeyi denediniz mi?

Bu kesinlikle bir hata mı? R’deki tüm kırmızı metinler hata anlamına gelmez - bazen size sadece bilgi içeren bir mesaj verir.