1  R’de Temel Kullanım ve İlk Komutlar

1.1 Bölümün Amacı

R öğrenmeye başlarken çoğu zaman doğrudan fonksiyonlara, veri setlerine veya grafiklere geçmek cazip gelir. Ancak bir programlama diliyle verimli çalışabilmek için önce o dilin temel çalışma mantığını anlamak gerekir. R’de komutların nasıl yazıldığı, nesnelerin nasıl oluşturulduğu, çalışma dizininin ne anlama geldiği, yardım sisteminin nasıl kullanılacağı ve temel operatörlerin nasıl çalıştığı bilinmeden daha ileri konulara geçmek sağlam bir temel oluşturmaz.

Bu bölümün amacı, R ile çalışmaya yeni başlayan bir kullanıcının ihtiyaç duyacağı temel kavramları bir araya getirmektir. Burada ele alınan konular ilk bakışta basit görünebilir; fakat ilerleyen bölümlerde veri okuma, veri düzenleme, fonksiyon yazma, modelleme ve raporlama gibi işlemlerin tamamı bu temel üzerine kurulacaktır.

Bu bölümde özellikle şu konular ele alınacaktır:

  • çalışma dizini ve proje mantığı,
  • R kodlarının temel yazım kuralları,
  • nesne oluşturma ve atama operatörleri,
  • nesne isimlendirme alışkanlıkları,
  • çalışma alanını inceleme,
  • yardım alma,
  • paket yükleme ve çağırma,
  • matematiksel operatörler,
  • mantıksal operatörler.

Amaç yalnızca bazı komutları ezberletmek değildir. Her komutun ne işe yaradığını, neden kullanıldığını ve hangi durumlarda dikkatli olunması gerektiğini anlamaktır.

1.2 Çalışma Dizini ve Proje Mantığı

R ile çalışırken dosyaların nerede bulunduğu ve çıktıların nereye kaydedildiği önemlidir. R’nin dosya okuma ve yazma işlemlerinde başlangıç noktası olarak kullandığı klasöre çalışma dizini denir. İngilizcede bu kavram working directory olarak geçer.

Çalışma dizini, R’nin “şu anda hangi klasörde çalıştığını” gösterir. Bir dosya adı verip tam dosya yolu belirtmediğinizde, R bu dosyayı çalışma dizini içinde arar. Aynı şekilde bir çıktı dosyası oluşturduğunuzda, aksini belirtmezseniz bu dosya çalışma dizinine kaydedilir.

Mevcut çalışma dizinini öğrenmek için getwd() fonksiyonu kullanılır. Buradaki isimlendirme İngilizcedeki get working directory ifadesinden gelir.

# getwd() mevcut çalışma dizinini gösterir.
# Çıktı, R'nin şu anda hangi klasörü referans aldığını belirtir.
getwd()
[1] "D:/Akademi ve Veri Bilimi/Data Science/Github/r-book-tr"

Çalışma dizinini değiştirmek için setwd() fonksiyonu kullanılabilir. Bu fonksiyonun adı set working directory ifadesinden gelir.

# setwd() çalışma dizinini değiştirir.
# Aşağıdaki yol örnektir; kendi bilgisayarınızdaki geçerli bir klasör yolu yazılmalıdır.
setwd("C:/Users/Kullanici/Documents/R-Projeleri")

Ancak modern R kullanımında, özellikle Quarto veya RStudio Project ile çalışırken kod dosyalarının içine sabit setwd() komutları yazmak her zaman iyi bir alışkanlık değildir. Çünkü bu tür dosya yolları kişisel bilgisayara bağlıdır. Aynı kod başka bir bilgisayarda çalıştırıldığında bu yol geçerli olmayabilir.

Warning

Kod içine setwd("C:/...") gibi kişisel dosya yolları yazmak, kodun taşınabilirliğini azaltır. Mümkün olduğunda RStudio Project veya Quarto proje yapısı kullanmak daha sağlıklı bir yaklaşımdır.

RStudio üzerinden çalışma dizini ayarlamak için menüden şu yol izlenebilir:

Session > Set Working Directory

Ancak daha sürdürülebilir yaklaşım, her analiz veya kitap projesi için ayrı bir proje klasörü oluşturmak ve ilgili dosyaları bu klasör içinde düzenli şekilde saklamaktır. Böylece veri dosyaları, R betikleri, Quarto belgeleri ve çıktılar aynı proje yapısı içinde tutarlı biçimde yönetilebilir.

Çalışma dizini içindeki dosyaları görmek için dir() veya list.files() fonksiyonları kullanılabilir.

# dir() mevcut çalışma dizini içindeki dosya ve klasörleri listeler.
dir()
 [1] "_book"                           "_common.R"                      
 [3] "_quarto.yml"                     "apply.qmd"                      
 [5] "apply_files"                     "basics.qmd"                     
 [7] "basics.rmarkdown"                "basics_files"                   
 [9] "basics2.qmd"                     "cover.png"                      
[11] "custom.scss"                     "data_analysis.qmd"              
[13] "data_analysis_files"             "data_frame_kitap_bolumu.qmd"    
[15] "data_join.qmd"                   "data_manipulation.qmd"          
[17] "data_preprocess.qmd"             "data_preprocess_files"          
[19] "data_transformation.qmd"         "data_types.qmd"                 
[21] "datasets"                        "date_time.qmd"                  
[23] "functions.qmd"                   "ggplot2.qmd"                    
[25] "ggplot2_files"                   "if_else_for.qmd"                
[27] "images"                          "import_export.qmd"              
[29] "index.qmd"                       "index.tex"                      
[31] "intro.qmd"                       "LICENSE"                        
[33] "r-book-tr.Rproj"                 "r_about.qmd"                    
[35] "R_intro.qmd"                     "README.md"                      
[37] "regresyon.qmd"                   "regresyon_files"                
[39] "statistics.qmd"                  "statistics_files"               
[41] "strings.qmd"                     "styles.css"                     
[43] "summary.qmd"                     "temel_kullanim_ilk_komutlar.qmd"
[45] "tinytable_assets"               
# list.files() de benzer şekilde dosyaları listeler.
list.files()
 [1] "_book"                           "_common.R"                      
 [3] "_quarto.yml"                     "apply.qmd"                      
 [5] "apply_files"                     "basics.qmd"                     
 [7] "basics.rmarkdown"                "basics_files"                   
 [9] "basics2.qmd"                     "cover.png"                      
[11] "custom.scss"                     "data_analysis.qmd"              
[13] "data_analysis_files"             "data_frame_kitap_bolumu.qmd"    
[15] "data_join.qmd"                   "data_manipulation.qmd"          
[17] "data_preprocess.qmd"             "data_preprocess_files"          
[19] "data_transformation.qmd"         "data_types.qmd"                 
[21] "datasets"                        "date_time.qmd"                  
[23] "functions.qmd"                   "ggplot2.qmd"                    
[25] "ggplot2_files"                   "if_else_for.qmd"                
[27] "images"                          "import_export.qmd"              
[29] "index.qmd"                       "index.tex"                      
[31] "intro.qmd"                       "LICENSE"                        
[33] "r-book-tr.Rproj"                 "r_about.qmd"                    
[35] "R_intro.qmd"                     "README.md"                      
[37] "regresyon.qmd"                   "regresyon_files"                
[39] "statistics.qmd"                  "statistics_files"               
[41] "strings.qmd"                     "styles.css"                     
[43] "summary.qmd"                     "temel_kullanim_ilk_komutlar.qmd"
[45] "tinytable_assets"               

Yeni bir klasör oluşturmak için dir.create() fonksiyonu kullanılır.

# "sonuclar" adında yeni bir klasör oluşturur.
dir.create("sonuclar")

Bir dosya veya klasörün var olup olmadığını kontrol etmek için file.exists() kullanılabilir.

# Belirtilen dosya veya klasör mevcutsa TRUE, değilse FALSE döndürür.
file.exists("sonuclar")
[1] FALSE

Bu tür kontroller özellikle otomatik rapor üretimi ve veri okuma-yazma işlemlerinde önemlidir. Örneğin bir çıktı klasörü yoksa önce oluşturmak, varsa mevcut klasörü kullanmak daha güvenli bir iş akışı sağlar.

1.3 R Kodlarının Temel Yazım Kuralları

R kodları belirli sözdizimi kurallarına göre yazılır. Bu kuralların bir kısmı teknik zorunluluktur, bir kısmı ise okunabilir ve sürdürülebilir kod yazmak için önerilen iyi alışkanlıklardır.

1.3.1 Büyük-Küçük Harf Duyarlılığı

R büyük-küçük harfe duyarlı bir dildir. İngilizcede buna case sensitive denir. Yani a ile A R için aynı nesne değildir.

# Küçük harfle a adlı nesne oluşturuyoruz.
a <- 5

# a nesnesini yazdırıyoruz.
print(a)
[1] 5
# Büyük harfle A farklı bir nesnedir.
A <- 6

print(A)
[1] 6

Bu iki nesne birbirinden bağımsızdır.

a
[1] 5
A
[1] 6

Bu davranış özellikle yeni başlayanlar için önemlidir. Kod yazarken nesne adlarının büyük-küçük harf uyumuna dikkat edilmelidir. veri, Veri ve VERI R açısından üç farklı nesnedir.

1.3.2 Yorum Satırları

R kodlarında # işareti yorum satırı yazmak için kullanılır. Bu işaretten sonra gelen metin R tarafından çalıştırılmaz. Yorum satırları, kodun ne yaptığını açıklamak ve daha sonra kodu okuyan kişiye yardımcı olmak için kullanılır.

# Bu satır yorumdur ve çalıştırılmaz.

# Aşağıda bir nesne oluşturuyoruz.
sayi <- 10

# Nesneyi ekrana yazdırıyoruz.
sayi
[1] 10

Yorum satırları gereksiz yere her satırı tekrar etmemelidir. İyi yorum, kodun zaten açık olan kısmını değil, kodun arkasındaki niyeti açıklar.

Kötü yorum:

# x'e 5 ata
x <- 5

Daha faydalı yorum:

# Analizde kullanılacak başlangıç değerini belirliyoruz.
baslangic_degeri <- 5

1.3.3 Aynı Satırda Birden Fazla Komut

R’de aynı satırda birden fazla komut yazmak mümkündür. Bunun için noktalı virgül ; kullanılır.

x <- 10; y <- 20; x + y
[1] 30

Ancak bu kullanım genellikle önerilmez. Kodun okunabilirliği açısından her komutu ayrı satıra yazmak daha iyidir.

x <- 10
y <- 20

x + y
[1] 30

Bu ikinci yazım biçimi daha açık, daha okunabilir ve hata ayıklaması daha kolaydır.

Tip

Yeni başlayanlar için en iyi alışkanlıklardan biri, kodu okunabilir yazmaktır. Kısa ama karmaşık kod yerine, biraz daha uzun ama anlaşılır kod tercih edilmelidir.

1.4 Nesne Oluşturma ve Atama Operatörü

R’de hesaplanan değerleri daha sonra kullanabilmek için nesnelere atarız. Bir nesne, bellekte saklanan ve bir adla çağrılabilen değerdir. R’de nesne oluşturmak için en yaygın kullanılan operatör <- atama operatörüdür.

# x adlı bir nesne oluşturuyoruz ve içine 10 değerini atıyoruz.
x <- 10

x
[1] 10

Atama operatörü, sağ taraftaki değeri sol taraftaki nesne adına atar. Yani yukarıdaki kod şu şekilde okunabilir:

x nesnesine 10 değerini ata.

R’de = işareti de atama için kullanılabilir.

y = 20

y
[1] 20

Ancak R topluluğunda yaygın ve okunabilir kullanım, nesne oluştururken <- kullanmaktır. = işareti ise genellikle fonksiyon argümanlarını belirtirken kullanılır.

# Nesne oluştururken <- kullanımı
notlar <- c(70, 80, 90)

# Fonksiyon argümanında = kullanımı
mean(notlar, na.rm = TRUE)
[1] 80

Bu ayrım başlangıçta küçük görünebilir; ancak kodun okunabilirliğini artırır. Kitap boyunca nesne atamalarında <-, fonksiyon argümanlarında ise = kullanılacaktır.

1.4.1 Atama ve Hesaplama

Atama operatörü yalnızca sabit değerler için kullanılmaz. Hesaplama sonuçları da nesnelere atanabilir.

a <- 5
b <- 10

# Hesaplama sonucunu sonuc adlı nesneye atıyoruz.
sonuc <- 2 * a + 3 * b

sonuc
[1] 40

Burada sonuc nesnesi, hesaplama çıktısını saklar. Daha sonra aynı sonucu tekrar hesaplamak yerine bu nesne kullanılabilir.

sonuc / 5
[1] 8

1.5 Nesne İsimlendirme Alışkanlıkları

R’de nesne adları harf, sayı, nokta ve alt çizgi içerebilir; ancak sayı ile başlamamalıdır. Nesne isimleri okunabilir, anlamlı ve tutarlı olmalıdır.

İyi örnekler:

ortalama_not <- 75
ogrenci_sayisi <- 30
gelir_2024 <- 45000

Bu nesne adları, içerdikleri bilginin ne olduğunu açıkça gösterir.

Kaçınılması gereken örnekler:

# Çok belirsiz isimler
x1 <- 75
abc <- 30

# R'de temel fonksiyon adlarını nesne adı olarak kullanmak sakıncalıdır.
c <- 1:5
mean <- 10

c ve mean gibi adlar R’de temel fonksiyon adlarıdır. Bu isimleri nesne adı olarak kullanmak, ileride beklenmeyen sorunlara neden olabilir.

Warning

R’nin temel fonksiyon adlarını nesne adı olarak kullanmaktan kaçının. Özellikle c, mean, sum, data, T ve F gibi isimler yeni başlayanların sık yaptığı hatalardandır.

Ayrıca T ve F yerine her zaman TRUE ve FALSE yazmak daha güvenlidir. Çünkü T ve F nesne adı olarak yeniden atanabilir; ancak TRUE ve FALSE sabittir.

# Önerilen kullanım
mantiksal_deger <- TRUE

mantiksal_deger
[1] TRUE

1.6 Çalışma Alanını İnceleme

R oturumunda oluşturulan nesneler çalışma alanında saklanır. Mevcut nesneleri görmek için ls() fonksiyonu kullanılabilir.

# Çalışma alanındaki nesneleri listeler.
ls()
 [1] "a"               "A"               "b"               "gelir_2024"     
 [5] "mantiksal_deger" "notlar"          "ogrenci_sayisi"  "ortalama_not"   
 [9] "sayi"            "sonuc"           "x"               "y"              

Bir nesnenin yapısını incelemek için str() fonksiyonu çok kullanışlıdır.

notlar <- c(70, 80, 90)

# str() nesnenin yapısını ve tipini özetler.
str(notlar)
 num [1:3] 70 80 90

Bir nesnenin sınıfını öğrenmek için class(), daha düşük seviyeli tipini öğrenmek için typeof() kullanılabilir.

class(notlar)
[1] "numeric"
typeof(notlar)
[1] "double"

Bazı eğitimlerde çalışma alanını tamamen temizlemek için rm(list = ls()) komutu kullanılır.

# Çalışma alanındaki tüm nesneleri siler.
rm(list = ls())

Bu komut faydalı olabilir; ancak dikkatli kullanılmalıdır. Çünkü bellekteki tüm nesneleri siler ve geri alınamaz.

Warning

rm(list = ls()) komutu çalışma alanındaki tüm nesneleri siler. Özellikle kaydedilmemiş ara sonuçlar varsa dikkatli kullanılmalıdır.

1.7 Yardım Alma

R öğrenirken en önemli becerilerden biri yardım sistemini kullanabilmektir. Her fonksiyonun nasıl çalıştığını ezberlemek mümkün değildir. Asıl önemli olan, ihtiyaç duyulduğunda doğru yardım sayfasına ulaşabilmektir.

Bir fonksiyon hakkında yardım almak için ? operatörü kullanılabilir.

# mean() fonksiyonunun yardım sayfasını açar.
?mean

Aynı işlem help() fonksiyonu ile de yapılabilir.

help(mean)

Bir fonksiyonun argümanlarını hızlıca görmek için args() fonksiyonu kullanılabilir.

# mean() fonksiyonunun argüman yapısını gösterir.
args(mean)
function (x, ...) 
NULL

Fonksiyon örneklerini görmek için example() fonksiyonu kullanılabilir.

# mean() fonksiyonu için örnekleri çalıştırır.
example(mean)

Bir fonksiyonun hangi paketten geldiğini veya genel dokümantasyonunu görmek için yardım sayfaları oldukça değerlidir. R öğrenirken yardım sistemini kullanmak, ezber yapmaktan çok daha sürdürülebilir bir yaklaşımdır.

1.8 Paket Yükleme ve Çağırma

Base R birçok temel fonksiyonla birlikte gelir. Ancak R’nin asıl gücü, kullanıcılar tarafından geliştirilen paket ekosisteminden gelir. Paketler, belirli görevler için hazırlanmış fonksiyon, veri ve dokümantasyon koleksiyonlarıdır.

Bir paketi bilgisayara kurmak için install.packages() kullanılır. Bu işlem genellikle bir kez yapılır.

# ggplot2 paketini bilgisayara kurar.
install.packages("ggplot2")

Kurulu bir paketi mevcut R oturumunda kullanmak için library() fonksiyonu çağrılır.

# ggplot2 paketini mevcut oturumda kullanıma açar.
library(ggplot2)

Bu iki işlem karıştırılmamalıdır:

Paket bir kez kurulmuş olsa bile, R her yeniden başlatıldığında ilgili paketi kullanmak için library() yeniden çalıştırılmalıdır.

Note

Paket kurmak ile paketi çağırmak farklı işlemlerdir. Paketi bir kez kurarsınız; ancak her yeni R oturumunda kullanmak için library() ile çağırırsınız.

1.9 Matematiksel Operatörler

R temel matematiksel işlemler için doğrudan kullanılabilir. Bu nedenle R aynı zamanda güçlü bir hesap makinesi gibi de çalışır. Ancak R’nin matematiksel operatörleri yalnızca basit hesaplar için değil, veri vektörleri, matrisler ve modelleme işlemleri için de temel oluşturur.

Temel matematiksel operatörler şunlardır:

Operatör Anlamı
+ toplama
- çıkarma
* çarpma
/ bölme
^ üs alma
%% kalan bulma
%/% tam bölme
# Temel aritmetik işlemler
5 + 3
[1] 8
10 - 4
[1] 6
6 * 7
[1] 42
20 / 5
[1] 4

Üs alma işlemi için ^ kullanılır.

# 2 üzeri 3
2^3
[1] 8

Kalan bulmak için %%, tam bölme için %/% kullanılır.

# 10'un 3'e bölümünden kalan
10 %% 3
[1] 1
# 10'un 3'e tam bölümü
10 %/% 3
[1] 3

Bu iki operatör özellikle sayıların tek/çift olmasını kontrol etmek, gruplama yapmak veya döngüsel yapılar kurmak için kullanışlıdır.

# Bir sayının çift olup olmadığını kontrol edelim.
sayi <- 8

sayi %% 2 == 0
[1] TRUE

R’de bazı matematiksel fonksiyonlar da hazır gelir.

# Kareköke alma
sqrt(25)
[1] 5
# Mutlak değer
abs(-10)
[1] 10
# Doğal logaritma
log(10)
[1] 2.302585
# 10 tabanında logaritma
log10(100)
[1] 2
# e üzeri x
exp(2)
[1] 7.389056

Trigonometrik fonksiyonlarda dikkat edilmesi gereken önemli bir nokta vardır: R açıları derece değil, radyan cinsinden kabul eder.

# 45 derece, radyan cinsinden pi/4'e eşittir.
sin(pi / 4)
[1] 0.7071068
# cos(0) değeri 1'dir.
cos(0)
[1] 1
Warning

sin(45) ifadesi 45 derece anlamına gelmez. R trigonometrik fonksiyonlarda radyan kullanır. 45 derece için sin(pi / 4) yazılmalıdır.

1.10 İşlem Önceliği

Matematiksel işlemlerde işlem önceliği önemlidir. R, standart matematik kurallarına göre önce üs alma, sonra çarpma-bölme, sonra toplama-çıkarma işlemlerini yapar.

2 + 3 * 4
[1] 14

Parantez kullanarak işlem sırası değiştirilebilir.

(2 + 3) * 4
[1] 20

Okunabilirlik açısından karmaşık ifadelerde parantez kullanmak iyi bir alışkanlıktır. Parantez yalnızca sonucu değiştirmek için değil, kodu okuyan kişinin niyeti daha kolay anlaması için de kullanılabilir.

1.11 Mantıksal Operatörler

R’de mantıksal operatörler karşılaştırma yapmak için kullanılır. Bu operatörler TRUE veya FALSE sonucu üretir. Mantıksal ifadeler veri filtreleme, koşullu işlemler ve modelleme öncesi kontrollerde sık kullanılır.

Temel karşılaştırma operatörleri şunlardır:

Operatör Anlamı
> büyüktür
< küçüktür
>= büyük eşittir
<= küçük eşittir
== eşittir
!= eşit değildir
5 > 3
[1] TRUE
10 < 7
[1] FALSE
8 == 8
[1] TRUE
8 != 9
[1] TRUE

Burada özellikle == operatörüne dikkat edilmelidir. Tek eşittir = atama veya fonksiyon argümanı belirtme için kullanılırken, == karşılaştırma yapmak için kullanılır.

Mantıksal operatörler vektörlerle birlikte kullanıldığında her eleman için ayrı sonuç üretir.

notlar <- c(45, 60, 80, 30)

# Her not için 50 ve üzeri olup olmadığını kontrol eder.
notlar >= 50
[1] FALSE  TRUE  TRUE FALSE

Bu logical çıktı, veri seçmek için kullanılabilir.

# 50 ve üzeri notları seçelim.
notlar[notlar >= 50]
[1] 60 80

Birden fazla koşulu birlikte kullanmak için & ve | operatörleri kullanılır.

# 50 ile 80 arasındaki notları seçelim.
notlar[notlar >= 50 & notlar <= 80]
[1] 60 80
# 50'nin altında veya 80'in üstünde olan notları seçelim.
notlar[notlar < 50 | notlar > 80]
[1] 45 30

! operatörü mantıksal değerin tersini alır.

# 50 ve üzeri olmayan notlar
notlar[!(notlar >= 50)]
[1] 45 30

Bu bölümdeki mantıksal operatörler ilerleyen konularda if, ifelse(), veri filtreleme ve modelleme öncesi veri kontrolü gibi birçok yerde tekrar karşımıza çıkacaktır.

1.12 Mini Uygulama: Temel Komutları Birlikte Kullanmak

Şimdi bu bölümdeki bazı temel kavramları küçük bir örnek üzerinde birleştirelim.

# Öğrenci notlarını içeren bir vektör oluşturalım.
notlar <- c(45, 60, 80, 30, 90, 75)

# Vektörün yapısını inceleyelim.
str(notlar)
 num [1:6] 45 60 80 30 90 75
# Ortalama notu hesaplayalım.
ortalama_not <- mean(notlar)

ortalama_not
[1] 63.33333

Geçme notunu 50 olarak kabul edelim.

# Her öğrencinin geçip geçmediğini logical olarak kontrol edelim.
notlar >= 50
[1] FALSE  TRUE  TRUE FALSE  TRUE  TRUE

Geçen öğrencilerin notlarını seçelim.

# 50 ve üzeri notları seçer.
gecen_notlar <- notlar[notlar >= 50]

gecen_notlar
[1] 60 80 90 75

Geçen öğrenci sayısını ve oranını hesaplayalım.

# length() vektördeki eleman sayısını verir.
gecen_sayi <- length(gecen_notlar)

# Toplam öğrenci sayısı
toplam_sayi <- length(notlar)

# Geçme oranı
gecme_orani <- gecen_sayi / toplam_sayi

gecme_orani
[1] 0.6666667

Bu küçük örnek, atama, nesne oluşturma, matematiksel işlem, mantıksal karşılaştırma ve vektörel seçimin birlikte nasıl kullanılabileceğini göstermektedir.

1.13 Sık Yapılan Hatalar

Bu bölümdeki konular temel görünse de, yeni başlayanların en sık yaptığı hatalar genellikle bu düzeyde ortaya çıkar.

İlk hata, büyük-küçük harf duyarlılığını gözden kaçırmaktır.

veri <- 10

# Bu nesne bulunamaz; çünkü Veri ile veri aynı değildir.
Veri

İkinci hata, atama ve karşılaştırma operatörlerini karıştırmaktır.

x <- 10

# Karşılaştırma için == kullanılır.
x == 10
[1] TRUE

Üçüncü hata, temel fonksiyon adlarını nesne adı olarak kullanmaktır.

# Önerilmez
mean <- 5
c <- 1:10

Dördüncü hata, trigonometrik fonksiyonlarda derece-radyan farkını bilmemektir.

# 45 derece için doğru kullanım
sin(pi / 4)
[1] 0.7071068

Beşinci hata, paket kurma ile paketi çağırma işlemlerini karıştırmaktır.

install.packages("dplyr")  # bir kez kurulur
library(dplyr)             # her oturumda çağrılır

1.14 Egzersizler

Aşağıdaki egzersizler, bu bölümde ele alınan temel R kullanım becerilerini pekiştirmek için hazırlanmıştır.

  1. Mevcut çalışma dizininizi getwd() ile öğreniniz.
  2. Çalışma dizinindeki dosyaları list.files() ile görüntüleyiniz.
  3. ogrenci_sayisi adlı bir nesne oluşturup içine 35 değerini atayınız.
  4. ortalama_not adlı bir nesne oluşturup içine 78.5 değerini atayınız.
  5. Bu iki nesnenin sınıfını class() ile inceleyiniz.
  6. 10, 20, 30 ve 40 değerlerinden oluşan bir vektör oluşturunuz.
  7. Bu vektörün ortalamasını hesaplayınız.
  8. Vektörde 25’ten büyük değerleri mantıksal operatörle seçiniz.
  9. Bir sayının çift olup olmadığını %% operatörüyle kontrol ediniz.
  10. ?mean veya help(mean) kullanarak mean() fonksiyonunun yardım sayfasını açınız.
  11. args(mean) ile mean() fonksiyonunun argümanlarını inceleyiniz.
  12. sin(45) ve sin(pi / 4) ifadelerini çalıştırıp farkı yorumlayınız.

1.15 Egzersiz Çözümleri

# 1. Çalışma dizini
getwd()
[1] "D:/Akademi ve Veri Bilimi/Data Science/Github/r-book-tr"
# 2. Çalışma dizinindeki dosyalar
list.files()
 [1] "_book"                           "_common.R"                      
 [3] "_quarto.yml"                     "apply.qmd"                      
 [5] "apply_files"                     "basics.qmd"                     
 [7] "basics.rmarkdown"                "basics_files"                   
 [9] "basics2.qmd"                     "cover.png"                      
[11] "custom.scss"                     "data_analysis.qmd"              
[13] "data_analysis_files"             "data_frame_kitap_bolumu.qmd"    
[15] "data_join.qmd"                   "data_manipulation.qmd"          
[17] "data_preprocess.qmd"             "data_preprocess_files"          
[19] "data_transformation.qmd"         "data_types.qmd"                 
[21] "datasets"                        "date_time.qmd"                  
[23] "functions.qmd"                   "ggplot2.qmd"                    
[25] "ggplot2_files"                   "if_else_for.qmd"                
[27] "images"                          "import_export.qmd"              
[29] "index.qmd"                       "index.tex"                      
[31] "intro.qmd"                       "LICENSE"                        
[33] "r-book-tr.Rproj"                 "r_about.qmd"                    
[35] "R_intro.qmd"                     "README.md"                      
[37] "regresyon.qmd"                   "regresyon_files"                
[39] "statistics.qmd"                  "statistics_files"               
[41] "strings.qmd"                     "styles.css"                     
[43] "summary.qmd"                     "temel_kullanim_ilk_komutlar.qmd"
[45] "tinytable_assets"               
# 3. Nesne oluşturma
ogrenci_sayisi <- 35

ogrenci_sayisi
[1] 35
# 4. Başka bir nesne oluşturma
ortalama_not <- 78.5

ortalama_not
[1] 78.5
# 5. Nesne sınıflarını inceleme
class(ogrenci_sayisi)
[1] "numeric"
class(ortalama_not)
[1] "numeric"
# 6. Vektör oluşturma
sayilar <- c(10, 20, 30, 40)

sayilar
[1] 10 20 30 40
# 7. Ortalama hesaplama
mean(sayilar)
[1] 25
# 8. 25'ten büyük değerleri seçme
sayilar[sayilar > 25]
[1] 30 40
# 9. Çift sayı kontrolü
sayi <- 12

sayi %% 2 == 0
[1] TRUE
# 10. Yardım sayfası
?mean

# Alternatif kullanım
help(mean)
# 11. Fonksiyon argümanlarını inceleme
args(mean)
function (x, ...) 
NULL
# 12. Derece-radyan farkı
sin(45)
[1] 0.8509035
sin(pi / 4)
[1] 0.7071068

1.16 Bölüm Özeti

Bu bölümde R ile çalışmaya başlamak için gerekli temel kavramlar ele alındı. Çalışma dizini, dosya yolları, atama operatörü, nesne isimlendirme, çalışma alanını inceleme, yardım alma, paket yükleme ve çağırma, matematiksel operatörler ve mantıksal operatörler bu temelin parçalarıdır.

R öğrenirken amaç yalnızca komutları ezberlemek olmamalıdır. Daha önemli olan, bu komutların hangi problemi çözdüğünü ve hangi durumlarda dikkatli kullanılmaları gerektiğini anlamaktır. Bu bölümde verilen kavramlar, ilerleyen bölümlerde veri tipleri, veri yapıları, fonksiyonlar, kontrol ifadeleri ve veri analizi konularının temelini oluşturacaktır.