Bu yazımda, 1 Ekim 2024 tarihinde işlenen R ile veri analizi dersindeki;
1. R paketleri ve yükleme süreci
2. Yaygın Hatalar ve Çözümler
3. Alıntılar
başlıklarının kısa özetleri ile bu başlıklar üzerine düşüncelerimi paylaşacağım. Ayrıca, bu süreçte kullandığımız kodlarla birlikte deneyimlerimi aktaracağım.

1. R paketleri ve yükleme süreci

R dilinin veri işleme ve istatistiksel analiz gibi pek çok işlev sunan bir programlama dili olduğunu ve temel işlevlerinin yanı sıra ek paketler ile piyasadaki bir çok programın yapamayacağı analizleri bile gerçekleştirebileceğini öğrendim. Bir paketi kullanabilmek için önce onu yüklememiz, ardından R oturumunda etkinleştirmemiz gerektiğini fark ettim. Bu işlemleri gerçekleştireceğimiz fonksiyonların

install.packages()

ve

library()

olduğunu öğrendim.

R Paketleri

R’ı ilk kez yüklediğimizde, bazı temel paketler (Base R) ile beraber geldiğini, ancak daha karmaşık analizler için ek paketlere ihtiyaç duyduğumuzu fark ettim. Örneğin CTT paketini yüklemek ve aktif etmek için öncelikle;

install.packages("CTT")

komutunu kullanmalı, ardından,

library("CTT")

komutuyla etkinleştirmemiz gerektiğini fark ettim.

length(fonksiyonlar)

yazdığımızda 1407 adet fonksiyonun listelendiğini gördüm. Köşeli parantez kullanılarak yazılan;

fonksiyonlar[220:230]

koduyla 1407 fonksiyon arasından 220-230 arasındaki tüm fonksiyonları listeleyebileceğimi gördüm.

Tidyverse paketini yükleme

install.packages("tidyverse")
library(tidyverse)

kodunu kullanarak veri analizi için sıkça kullanılan tidyverse paketini yükleyip etkinleştirebileceğimi öğrendim. R’da bir paketi yalnızca bir kez yüklememiz yeterlidir. Ancak her oturumda kullanabilmek için mutlaka etkinleştirmemiz gerekmektedir.
NOT: Bazen paket yükleme sonrası alışılagelmişin dışında, farklı renklerde yazıların çıkabileceğini, her farklı gelenin hata olarak algılanmaması gerektiğini, yazılanları okumak ve anlamaya çalışmak gerektiğini fark ettim.

Github paketlerinin yüklnmesi

Bazı R paketlerinin github üzerinden yayınlandığını ve standart yolla yüklenmediğini fark ettim. Ayrıca bu paketleri yükleyebilmek için öncelikle devtools paketinin yüklü olması gerekmektedir. Bu paketler sayesinde yapısal eşitlik modelleri ile ilgili APA formatında tablolar bile üretilebileceğini fark ettim. Örneğin;
yapısal eşitlik modellemesi için kullanılabilecek modeloutput paketini yazıya tıklayıp indirebiliriz. “yapısal eşitlik modellemesi” yazısına tıkladığımızda bizi github sayfasına yönlendirir.
Ayrıca, paketin yüklenmesi için örnek kod;

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

2. Yaygın Hatalar ve Çözümler

R paketlerini yüklerken bazı sık görülen hatalarla karşılaşabileceğimi öğrendim. Bu tür yaygın hatalar ile karşılaştığımda ilk bakabileceğim durumlar şunlar olacaktır.

a) R sürümünün güncel olmaması, paketlerin bağımlı olduğu diğer paketlerin güncel olmaması gibi durumlar hata mesajlarına yol açabilmektedir.
b) R’ın düzenli olarak en son sürümüne güncellenmesi, eski versiyonların bilgisayardan silinmesi gerekmektedir.
c) R gibi R paketlerinin de güncellemelerinin kontrol edilmesi ve güncel tutulması önemlidir
d) Önbelleğin temizlenmesi R’ın düzgün çalışması için yapılması gerekenlerdendir. Bunu yapmak için;

install.packages("your_package", clean = TRUE)

kodu kullanılabilir
e) Büyük ya da çok sayıda bağımlı olduğu paket olan paketlerin uzun süren yüklemelerini hızlandırabilmek içi;

install.packages("your_package", Ncpus = parallel::detectCores() - 1)

kodu kullanılabilir

Paket Çakışmaları

R’de aynı isme sahip fonksiyonlar içeren farklı paketler bir arada kullanıldığında çakışmaların meydana gelebileceğini öğrendim. Örneğin, hem dplyr hem de MASS paketleri içinde select() fonksiyonu bulunur. Bu gibi durumlarda, fonksiyonun hangi paketle kullanılacağını açıkça belirtmemiz gerektğini fark ettim. Çakışan paket olduğu durumlarda :: kullanarak sorun olmayacağını öğrendim. Kullanım örneği aşağıdaki gibidir.

#dplyr paketindeki select komutu için;  
dplyr::select()
#MASS paketindeki select komutu için ise;  
MASS::select()

Kısaca, paket çakışmasını çözmek için package::function yapısını kullanabileceğimi, bu sayede, hangi fonksiyonun hangi paketten çağrıldığını R’a bildirmiş olacağımızı öğrendim.

Paket Güncelleme

R paketlerinin yanı sıra, R ve RStudio sürümlerinin de zamanla güncellendiğini, bu güncellemelerin paketlere yeni özellikler kazandırdığını ve güncelleme ile birçok hatanın düzeltilmesinin sağlanabileceğini öğrendim.
Güncelleme yapılırken eski paketlerin üzerine yanlışlıkla yazılmasını engellemek için install.packages() komutunu yalnızca gerektiğinde çalıştırmak gerektiği oldukça önemlidir.

Paketleri güncellemek için kullanılabilecek kod;

update.packages()

NOT: Paketlerin güncel sürümleri ile çalışmak, analizlerin doğru sonuçlar vermesi açısından önemlidir.

3. Alıntılar

R, açık kaynak bir yazılımdır ve bilimsel raporlarda R ve kullandığımız paketlere alıntı yapmamız gereklidir. R sürümü ve kullanılan paketlerin alıntıları için;

citation()

fonksiyonu kullanılabilir.

tidyverse paketi için alıntı

citation("tidyverse")

RStudio sürümüne ait alıntı

RStudio.Vesion()

Etik açıdan bu alıntıları göstermek çok önemlidir. Ayrıca RMarkdown ile atıf vermenin oldukça kolay olduğunu öğrendim ancak henüz deneyimlemedim.
Sonuç olarak, R paketleri veri analizi süreçlerinde büyük kolaylık sağlar. Paket yükleme ve etkinleştirme süreçlerini öğrenmek, hata mesajlarını analiz edebilmek ve paket çakışmalarını çözmek bu süreçte karşılaşılan önemli adımlardır. Ayrıca, bilimsel çalışmalarda R ve paketlerine doğru şekilde atıf yapmayı öğrenmek, açık kaynak topluluğuna katkı sağlamamız açısından önemlidir.

2. HAFTA ÖDEVLERİ

Kitap 1. bölüm sorularının tamamlanması

SORU-5

install.packages("data.table")
library(data.table)
library(foreign)

SORU-6

#foreign paketi packages sekmesinden yüklendi
#library(foreign) komutuyla aktifleştirildi.

SORU-7

getwd()
## [1] "C:/Users/Lenovo/Desktop/R"

SORU-8

setwd("C:\Users\Lenovo\Desktop\R_giris")

SORU-9

set.seed(1000)
rnorm(100,5,10)
##   [1]   0.54221735  -7.05856569   5.41126314  11.39388408  -2.86554356
##   [6]   1.14510702   0.24132116  12.19750691   4.81494377  -8.73117759
##  [11]  -4.82427828  -0.54488702   6.21381189   3.79127684  -8.36041049
##  [16]   6.70057481   6.55078716   5.24931867 -15.46585414   7.13154106
##  [21]  31.70071664  -7.27016006  13.34247332  10.32571747  -1.46824963
##  [26]  11.03161261 -12.83844136   8.34942167  10.60975722  17.20935655
##  [31]   2.88546412  11.99429525  -2.06436682   0.34849055 -12.66198610
##  [36]   6.89288596   1.33819324  15.57601178  -2.41621462  -8.48359053
##  [41]  -0.17306432  19.11735702   6.85465028   4.56308557   2.84086625
##  [46]  19.63775346   7.29666637   6.07623634  -8.78102559  -4.68182883
##  [51]   7.51711380  -5.94693697   8.97642845  -4.96302004   6.00578012
##  [56]  14.53680281 -12.90322935   8.11701216  30.53988007  -3.60837756
##  [61]  10.43928442   1.07661964  17.35441898  16.96086439   0.04253099
##  [66]   2.05658779  -0.73497483  21.19208728  -4.56927673   5.41237120
##  [71]  -9.98310443  11.60959156   7.85457621  18.88866294   3.40656395
##  [76]   0.39081097   6.68438071  18.95493023  12.28426261   8.35089949
##  [81]  16.69276492   7.47966825   1.41850528  18.83493324   9.12069167
##  [86]   3.76992138   4.33770688 -18.22490877  -5.45656501  25.57875024
##  [91]  24.71532375 -14.20995197   9.62126070   3.39275936   3.95788468
##  [96]   9.67839401   9.43920815  13.28552808   1.12949878  25.18938163
s<-rnorm(100,5,10)
s
##   [1]  -8.69412215   6.63016839   3.86773824  13.59755286   6.28665461
##   [6]   6.92971247   8.89657184 -17.27541815  15.26734741  17.03450635
##  [11]  12.50493033   2.10680616   2.72536076   3.69553415  23.14587591
##  [16]   0.05984604   7.87679316  -9.95697096  21.22407119   7.36420673
##  [21]  10.69163826   1.77764857   9.58237628  15.67853238   8.24487586
##  [26]  -1.72156277  -3.33657317  -8.33842483   7.23205492  -1.75618781
##  [31]  -0.10796484  12.94888904  15.39261305   6.80999677   4.92689215
##  [36]  -0.13714128  16.19292302  -9.83866981  -8.90726274   5.96884354
##  [41]   7.57317944   9.91551992  -3.13337515  13.97149909  -6.82632671
##  [46]   1.46875028  17.23271425  22.02865417   5.33334321  12.11190971
##  [51]  -4.52468528  12.97390477   6.01081797  18.36414127   4.71187204
##  [56] -13.21022203  -4.98549257   8.10164259   6.31071044  -5.78914186
##  [61]   6.85911480  14.24195234  24.96543008   2.02076672   0.69040161
##  [66]   1.94080149   9.08446672   9.64037508  -1.25418094   5.03103026
##  [71]   8.61749811  -2.66652943   3.22583946  -3.16866597  -8.00500167
##  [76]  -6.98805664  24.04816708  17.23177961   7.31788802   3.13356072
##  [81]  21.84013290  15.27014374  19.96261664  16.12340422  10.01794686
##  [86]   5.48470660  -0.19874015  13.22582472  16.02283340   1.08824000
##  [91]   1.38405036  -6.61967978  -2.11416377   8.48970916   9.27366448
##  [96]  21.60847068  10.81613456   6.43465503   8.43303079  -4.31491222
#a)
mean(s)
## [1] 6.004248
sd(s)
## [1] 9.033927
#b)
hist(s)

KİTAP 1. BÖLÜM SORULARI TAMAMLANMIŞTIR
Ders dışı alıştırmalar yapıldı
Datacamp atanan bölüm alıştırmaları tamamlandı.
swirl package learn R in R paketi yüklendi, alıştırma yapıldı.
Referens kart sayfasının çıktısı alındı