Ana içeriğe atla

R'de Veri Türleri

Programlama dilinde veri türleri ve önemleri hakkında bilgi edinin. Daha özel olarak, R programlama dilinde vektör, matris, liste ve veri çerçevesi gibi çeşitli veri türlerini nasıl kullanacağınızı öğrenin.
Güncel 3 Eki 2026  · 12 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

r veri yapıları diyagramı

Girişe başlamadan ve R'deki çeşitli veri türlerini öğrenmeden önce, R ortamını Terminal ve Jupyter Notebook üzerinde hızlıca kuralım.

Aşağıdaki komut Mac işletim sistemi içindir ve R'yi terminalinize kuracaktır.

brew install r --build-from-source

Kurulumun başarılı olduğunu doğrulamak için terminalde büyük harfle R yazın; aşağıda gösterildiği gibi bir R oturumuna gireceksiniz.

r oturumu

Diğer işletim sistemlerine kurulum için bu eğitimi inceleyebilirsiniz.

Şimdi R programlama dilini jupyter notebook'a çekirdek (kernel) olarak ekleyelim. Sisteminizde jupyter notebook'un önceden kurulu olduğundan emin olun.

Terminalinize gidin, bir R oturumu açın ve jupyter notebook'a R çekirdeğini ekleyecek aşağıdaki iki komutu girin.

install.packages('IRkernel')
IRkernel::installspec()

Yukarıdaki iki komut başarıyla çalıştıktan sonra terminalden jupyter'ı başlatın ve aşağıda gösterildiği gibi R çekirdeği ile bir notebook açın:

r çekirdeği

Artık jupyter notebook üzerinde ilk R kodunuzu yazmaya hazırsınız.

Giriş

R'den en iyi şekilde yararlanmak için, R'de var olan çeşitli veri türlerini ve veri yapılarının nasıl çalıştığını bilmek ve anlamak çok önemlidir. Bu yapılar neredeyse tüm problemlerde kilit rol oynar; özellikle de veriye dayalı makine öğrenimi problemleri üzerinde çalışırken.

Bir programlama dilinde, genellikle tamsayı, karakter, kayan nokta, mantıksal (boolean) vb. bilgileri saklamak için değişkenlere ihtiyaç duyarız. Bir değişkenin type'ı, tuttuğu bilgi türüne göre belirlenir. Eğer bir tamsayı atanmışsa, değişkenin veri türü int olur. Değişkenler, değerlerin saklandığı ayrılmış bellek konumlarıdır. Bir değişken oluşturur oluşturmaz, onun için bir miktar bellek ayrılır.

Bir değişkenin veri türüne bağlı olarak, işletim sistemi belirli miktarda bellek ayırır. Örneğin R programlamada, bir tamsayı tutan değişken 4 bayt, bir karakter ise 1 bayt bellek ayırır.

C, C++ ve Java gibi programlama dillerinde değişkenler veri türüyle bildirilir; ancak Python ve R'de değişkenler birer nesnedir. Nesneler, öznitelikleri ve bu özniteliklere uygulanan bazı yöntemleri olan veri yapılarıdır.

Bu eğitimde ele alınacak çeşitli R-nesneleri veya veri yapıları şunlardır:

Önce R-nesnelerinin üzerine inşa edildiği bazı temel veri türlerini anlayalım: Sayısal (Numeric), Tamsayı (Integer), Karakter (Character), Faktör (Factor) ve Mantıksal (Logical).

  • Sayısal (Numeric): Ondalık değeri olan veya doğası gereği kesirli sayıların veri türü sayısaldır.
num <- 1.2
print(num)
[1] 1.2

a'nın veri türünü class() anahtar sözcüğüyle kontrol edebilirsiniz.

class(num)
'numeric'
  • Tamsayı (Integer): Ondalık değer içermeyen sayılar tamsayı veri türüne sahiptir. Ancak, bir tamsayı veri türü oluşturmak için açıkça as.integer() kullanır ve değişkeni argüman olarak geçirirsiniz.
int <- as.integer(2.2)
print(int)
[1] 2
class(int)
'integer'
  • Karakter (Character): Adından da anlaşılacağı üzere, tırnak içinde tek bir harf ya da harflerin bir kombinasyonu R tarafından karakter veri türü olarak kabul edilir. Harfler veya sayılar olabilir.
char <- "datacamp"
print(char)
[1] "datacamp"
class(char)
'character'
char <- "12345"
print(char)
[1] "12345"
class(char)
'character'
  • Mantıksal (Logical): Değeri Doğru veya Yanlış (True/False) olabilen değişkenler mantıksal değişken olarak adlandırılır.
log_true <- TRUE
print(log_true)
[1] TRUE
class(log_true)
'logical'
log_false <- FALSE
print(log_false)
[1] FALSE
class(log_false)
'logical'
  • Faktör (Factor): Renkler, iyi & kötü, ders veya film puanları gibi nitel ilişkileri ifade etmek için kullanılan bir veri türüdür. İstatistiksel modellemede faydalıdır.

Bunu yapmak için, tüm öğeleri birleştirerek bir vektör (tek boyutlu) döndüren c() fonksiyonunu kullanırsınız.

fac <- factor(c("good", "bad", "ugly","good", "bad", "ugly"))
print(fac)
[1] good bad  ugly good bad  ugly
Levels: bad good ugly
class(fac)
'factor'

fac faktörü good, bad ve ugly olmak üzere üç seviyeye sahiptir; bunu levels anahtar sözcüğüyle kontrol edebilirsiniz ve seviyelerin türü karakter olacaktır.

levels(fac)
  1. 'bad'
  2. 'good'
  3. 'ugly'
nlevels(fac)
3
class(levels(fac))
'character'

İlerlemeden önce, işinize yarayacak birkaç önemli ipucunu anlayalım!

  • R programlama dilinin büyük/küçük harf duyarlı olduğunu her zaman hatırlayın. Yukarıda tanımlanan nesnelerin tümü, aşağıdaki örnekte gösterildiği gibi, büyük/küçük harf kullanımı aynı olacak şekilde kullanılmalıdır.
Num
Error in eval(expr, envir, enclos): object 'Num' not found
Traceback:
  • R'de, çalışma ortamınızda sizin tarafınızdan tanımlanan tüm değişkenleri veya nesneleri ls() anahtar sözcüğüyle aşağıda gösterildiği gibi kontrol edebilirsiniz.
ls()
  1. 'char'
  2. 'int'
  3. 'num'

Listeler

Python'da liste indeksleme
(Kaynak)

Vektörlerin aksine, bir liste çeşitli veri türlerinde öğeler içerebilir ve genellikle sıralı bir değer koleksiyonu olarak bilinir. İçinde vektörler, fonksiyonlar, matrisler ve hatta başka bir liste (iç içe liste) barındırabilir.

R'deki listeler birden başlar; yani indeksleme bire göre yapılır.

Listeler kavramını, tek bir listede üç farklı veri türünü depolayan hızlı bir örnekle anlayalım.

lis1 <- 1:5  # Integer Vector
lis1
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
lis2 <- factor(1:5)  # Factor Vector
lis2
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
Seviyeler:
  1. '1'
  2. '2'
  3. '3'
  4. '4'
  5. '5'
lis3 <- letters[1:5]  # Character Vector
lis3
  1. 'a'
  2. 'b'
  3. 'c'
  4. 'd'
  5. 'e'
combined_list <- list(lis1, lis2, lis3)
combined_list
    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
  1. Seviyeler:
    1. '1'
    2. '2'
    3. '3'
    4. '4'
    5. '5'
    1. 'a'
    2. 'b'
    3. 'c'
    4. 'd'
    5. 'e'

Şimdi listedeki her vektöre ayrı ayrı erişelim. Bunu başarmak için, üç vektör de listede aynı seviyede yer aldığından çift köşeli parantez kullanacaksınız. python combined_list[[1]]

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

python combined_list[[2]]

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
Seviyeler:
  1. '1'
  2. '2'
  3. '3'
  4. '4'
  5. '5'
combined_list[[3]]
  1. 'a'
  2. 'b'
  3. 'c'
  4. 'd'
  5. 'e'

Şimdi, üçüncü vektörden beşinci öğeye erişmeyi deneyelim; bu da e harfini verir.

combined_list[[3]][5]
'e'

Son olarak, listeyi düzleştirmeyi deneyelim. Unutulmaması gereken önemli bir nokta, combined_list hem character hem de numeric veri türlerinin birleşimi olduğundan, character veri türünün öncelik kazanacağı ve tüm listenin veri türünün character olacağıdır.

flat_list <- unlist(combined_list)
class(flat_list)
'character'
flat_list
  1. '1'
  2. '2'
  3. '3'
  4. '4'
  5. '5'
  6. '1'
  7. '2'
  8. '3'
  9. '4'
  10. '5'
  11. 'a'
  12. 'b'
  13. 'c'
  14. 'd'
  15. 'e'
length(flat_list)
15

Vektörler

vektör matris
(Kaynak)

Vektörler, aynı veri türünden birden fazla bilgi veya değeri depolamak için kullanılan nesnelerdir. Bir vektör hem tamsayı hem de karakterin birlikte olduğu bir kombinasyona sahip olamaz. Örneğin 100 öğrencinin toplam notlarını saklamak istiyorsanız, her öğrenci için 100 farklı değişken oluşturmak yerine, tüm öğrenci notlarını saklayacak 100 uzunluğunda bir vektör oluşturursunuz.

Bir vektör, tüm öğeleri birleştirerek tek boyutlu bir dizi döndüren c() fonksiyonuyla oluşturulabilir.

Beş öğrencinin verisini içeren, numeric sınıfında bir marks vektörü oluşturalım.

marks <- c(88,65,90,40,65)
class(marks)
'numeric'

Vektörün uzunluğunu kontrol edelim; bu, içerdiği öğe sayısını döndürmelidir.

length(marks)
5

Şimdi, belirli bir öğeye indeksine göre erişmeyi deneyelim.

marks[4]
40
marks[5]
65
marks[6] #vektörde altıncı bir öğe olmadığından NA döner

<NA>

  • Dilimleme: Python'a benzer şekilde, dilimleme kavramı R'de de uygulanabilir.

    İkinci öğeden beşinciye kadar olan öğelere dilimleme ile erişmeyi deneyelim.

marks[2:5]
  1. 65
  2. 90
  3. 40
  4. 65

Şimdi de bir character vektörü oluşturalım; bu, sayısal vektör oluşturmaya benzer şekilde yapılır.

char_vector <- c("a", "b", "c")
print(char_vector)
[1] "a" "b" "c"
class(char_vector)

'character'

length(char_vector)
3
char_vector[1:3]
  1. 'a'
  2. 'b'
  3. 'c'

Eğer hem sayısal hem de karakter değerler içeren bir vektör oluşturursak, sayısal değerler karakter veri türüne dönüştürülür.

char_num_vec <- c(1,2, "a")
char_num_vec
  1. '1'
  2. '2'
  3. 'a'
class(char_num_vec)
'character'

Dilimleme yardımıyla 1024 sayısal değere sahip bir vektör oluşturalım.

vec <- c(1:1024)

Şimdi ortadaki ve son öğeye erişelim. Bunu yapmak için length fonksiyonunu kullanacaksınız.

vec[length(vec)]
1024
vec[length(vec)/2]
512
  • Tek sayılardan oluşan bir vektörü nasıl oluşturursunuz?

Tek sayılardan oluşan bir vektör oluşturmak için, başlangıç, bitiş ve adım boyutu olmak üzere üç parametre alan seq fonksiyonunu kullanabilirsiniz.

seq(1,10, by = 2)
  1. 1
  2. 3
  3. 5
  4. 7
  5. 9

Matris

r'de matris
(Kaynak)

Bir vektöre benzer şekilde, bir matris aynı veri türünden bilgileri depolamak için kullanılır. Ancak vektörlerden farklı olarak, matrisler içinde iki boyutlu bilgi tutabilir.

Bir matris tanımlamanın sözdizimi şöyledir:

M <- matrix(vector, nrow=r, ncol=c, byrow=FALSE, dimnames=list(char_vector_rownames, char_vector_colnames))

byrow=TRUE, matrisin satırlara göre doldurulacağını belirtir. byrow=FALSE ise matrisin sütunlara göre doldurulacağını (varsayılan) ifade eder.

Hızlıca $2\times3$ boyutunda bir M matrisi tanımlayalım.

M = matrix( c('AI','ML','DL','Tensorflow','Pytorch','Keras'), nrow = 2, ncol = 3, byrow = TRUE)
print(M)
     [,1]         [,2]      [,3]   
[1,] "AI"         "ML"      "DL"   
[2,] "Tensorflow" "Pytorch" "Keras"

Dilimleme kavramını kullanarak satır ve sütundan öğeler getirelim.

M[1:2,1:2] #ilk boyut her iki satırı da seçerken, ikinci boyut
#1. ve 2. sütundaki öğeleri seçecektir
2 × 2 boyutunda, türü chr olan bir matris
AI ML
Tensorflow Pytorch

DataFrame

veri çerçeveleri
(Kaynak)

Bir matristen farklı olarak, Veri çerçeveleri (Data frame) matrisin daha genelleştirilmiş bir biçimidir. Veriyi tablo şeklinde içerir. Veri çerçevesindeki veriler, farklı veri türlerine sahip çeşitli sütunlara yayılabilir. İlk sütun karakter, ikinci sütun tamsayı, üçüncü sütun mantıksal olabilir.

Değişkenler veya özellikler sütun düzeninde olup başlık olarak da bilinirken, gözlemler satırlardadır; ilk öğe satır adı, ardından gerçek veriler gelir ve bunlar veri satırları olarak adlandırılır.

DataFrame, data.frame() fonksiyonu kullanılarak oluşturulabilir.

DataFrame, virgülle ayrılmış dosyaları (CSV), metin dosyalarını okumada yaygın olarak kullanılmıştır. Kullanımı yalnızca veriyi okumakla sınırlı değildir; özellikle sayısal verilerle çalışırken makine öğrenimi problemleri için de kullanabilirsiniz. DataFrame'ler veriyi anlama, veri düzenleme, çizim ve görselleştirme için faydalı olabilir.

Basit bir örnek veri kümesi oluşturalım ve veri çerçevesine özgü bazı fonksiyonları öğrenelim.

dataset <- data.frame(
   Person = c("Aditya", "Ayush","Akshay"),
   Age = c(26, 26, 27),
   Weight = c(81,85, 90),
   Height = c(6,5.8,6.2),
   Salary = c(50000, 80000, 100000)
)
print(dataset)
  Person Age Weight Height Salary
1 Aditya  26     81    6.0  5e+04
2  Ayush  26     85    5.8  8e+04
3 Akshay  27     90    6.2  1e+05
class(dataset)
'data.frame'
nrow(dataset) # bu, dataset veri çerçevesinde bulunan satır sayısını verir
3
ncol(dataset) # bu, dataset veri çerçevesinde bulunan sütun sayısını verir
5
df1 = rbind(dataset, dataset) # satır bazında birleştirme; argümanları satır şeklinde ekler.
df1
Bir data.frame: 6 × 5
Person Age Weight Height Salary
<fct> <dbl> <dbl> <dbl> <dbl>
Aditya 26 81 6.0 5e+04
Ayush 26 85 5.8 8e+04
Akshay 27 90 6.2 1e+05
Aditya 26 81 6.0 5e+04
Ayush 26 85 5.8 8e+04
Akshay 27 90 6.2 1e+05
df2 = cbind(dataset, dataset) # sütun bazında birleştirme; argümanları sütun şeklinde ekler.
df2
Bir data.frame: 3 × 10
Person Age Weight Height Salary Person Age Weight Height Salary
<fct> <dbl> <dbl> <dbl> <dbl> <fct> <dbl> <dbl> <dbl> <dbl>
Aditya 26 81 6.0 5e+04 Aditya 26 81 6.0 5e+04
Ayush 26 85 5.8 8e+04 Ayush 26 85 5.8 8e+04
Akshay 27 90 6.2 1e+05 Akshay 27 90 6.2 1e+05

Milyonlarca kaydınız olduğunda ve yalnızca verinizin ilk birkaç satırını görmek istediğinizde çok faydalı olan head fonksiyonuna bakalım. Benzer şekilde, tail fonksiyonu verinizin son birkaç satırını verir.

head(df1,3) # burada yalnızca üç satır yazdırılır
Bir data.frame: 3 × 5
  Person Age Weight Height Salary
  <fct> <dbl> <dbl> <dbl> <dbl>
1 Aditya 26 81 6.0 5e+04
2 Ayush 26 85 5.8 8e+04
3 Akshay 27 90 6.2 1e+05
str(dataset) #bu, her sütun için bireysel sınıf veya veri türü bilgisini döndürür.
'data.frame':    3 obs. of  5 variables:
 $ Person: Factor w/ 3 levels "Aditya","Akshay",..: 1 3 2
 $ Age   : num  26 26 27
 $ Weight: num  81 85 90
 $ Height: num  6 5.8 6.2
 $ Salary: num  5e+04 8e+04 1e+05

Şimdi de veri kümenizin istatistiklerini anlamak istediğinizde işe yarayan summary() fonksiyonuna bakalım. Aşağıda gösterildiği gibi, verinizi üç çeyreğe ayırır; buna göre verinizin dağılımı hakkında sezgi edinebilirsiniz. Ayrıca veri kümenizde eksik değer olup olmadığını da gösterir.

summary(dataset)
    Person       Age            Weight          Height        Salary      
 Aditya:1   Min.   :26.00   Min.   :81.00   Min.   :5.8   Min.   : 50000  
 Akshay:1   1st Qu.:26.00   1st Qu.:83.00   1st Qu.:5.9   1st Qu.: 65000  
 Ayush :1   Median :26.00   Median :85.00   Median :6.0   Median : 80000  
            Mean   :26.33   Mean   :85.33   Mean   :6.0   Mean   : 76667  
            3rd Qu.:26.50   3rd Qu.:87.50   3rd Qu.:6.1   3rd Qu.: 90000  
            Max.   :27.00   Max.   :90.00   Max.   :6.2   Max.   :100000  

Sonuç

Eğitimi tamamladığınız için tebrikler.

Bu eğitim, R programlama dilini öğrenmeye meraklı yeni başlayanlar için iyi bir başlangıç noktasıydı. İyi bir egzersiz olarak, her veri türüyle ilgili daha fazla yardımcı fonksiyonu keşfetmekte özgürsünüz.

Koşullar ve Denetim Akışı (Conditionals and Control Flow), R'deki Yardımcı Araçlar (Utilities) ve en heyecan verici olanı R ile Makine Öğrenimi gibi R ile ilgili hâlâ açığa çıkarılmamış çok fazla bilgi var; bunlar gelecekteki eğitimlerde ele alınacak, takipte kalın!

Bu eğitimle ilgili her türlü sorunuzu aşağıdaki yorumlar bölümünde sormaktan çekinmeyin.

R hakkında daha fazla bilgi edinmek isterseniz, DataCamp'in Orta Düzey R kursunu alın ve R'de Veri Çerçevelerine Giriş eğitimine göz atın.

Konular
R
Veri Bilimi

R hakkında daha fazlasını öğrenin

{count, plural, one {Kurs} other {Kurs}}

R’ye Giriş

{hours} sa
3.1M
Vektörler, listeler ve veri çerçeveleri de dahil olmak üzere R'da veri analizinin temellerini öğrenin ve gerçek veri setleriyle R pratiği yapın.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

{count, plural, one {blog} other {blog}}

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

{count, plural, one {blog} other {blog}}

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

{count, plural, one {Eğitim} other {Eğitim}}

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

{count, plural, one {Eğitim} other {Eğitim}}

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör