Ana içeriğe atla

R'de Veri Kümelerini Alt Kümeleme

Veri kümelerini alt kümelere ayırmak her veri profesyoneli için kritik bir beceridir. Bu kısa etkileşimli eğitimde alt kümelemeyi öğrenin ve pratik yapın!
Güncel 3 Eki 2026  · 6 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

İster farklı demografik grupların pazarlama kampanyalarına nasıl yanıt verdiğini karşılaştırıyor olun, ister belirli bir zaman aralığına odaklanın ya da envanterdeki birkaç seçili ürünle ilgili bilgileri çekin, veri kümelerini alt kümelere ayırmak veri kümenizden yararlı gözlemler çıkarmanızı sağlar. R, verileri alt kümelere ayırmayı kolay ve sezgisel hale getiren harika bir araçtır. Bu eğitimin sonunda, veri kümenizden istediğiniz bilgileri çıkarmak için gerekli bilgi birikimine sahip olacaksınız.

Verilerinizi alt kümelere ayırmak, verilerinizin içeriğini değiştirmez; yalnızca aklınızdaki hedef için en ilgili bölümü seçer. Genel olarak, veri kümenizin satır ve sütunlarını alt kümelere ayırmanın üç yolu vardır—indekse göre, isme göre ve değere göre.

Satır ve Sütunları İndekse Göre Alt Kümeleme

Satır ve sütunlarınızı alt kümelere ayırmanın bir yolu, veri kümenizin indislerine göre yapmaktır. Bu, satır ve sütunlarınızı "ilk satır", "ikinci ve beşinci sütunlardaki tüm satırlar" ya da "ikinci ila beşinci sütunlardaki ilk satır" olarak tanımlamakla aynıdır. R'de iris adlı bir veri kümesini kullanarak bu ifadeleri belirtelim. Belgelerinde şöyle denir: "[B]u ünlü (Fisher'ın veya Anderson'ın) iris veri kümesi, 3 iris türünün her birinden 50 çiçek için, sırasıyla, çanak yaprak uzunluğu ve genişliği ile taç yaprak uzunluğu ve genişliği değişkenlerinin ölçümlerini santimetre cinsinden verir. Türler Iris setosa, versicolor ve virginica'dır."

# "The first row": iris[1, ] # "All rows in second and fifth columns": iris[, c(2, 5)] # "The first row in second to fifth columns": iris[1, 2:5]

Verilerinizi alt kümelere ayırmak için, veri kümesi nesnenizin ardından köşeli parantezler kullanılır. Veri kümenizin satırları köşeli parantezlerin içindeki ilk öğe olarak, sütunları ise virgülle ayrılmış ikinci öğe olarak belirtilir:

data[rows, columns]

Satır ve Sütunları İsme Göre Alt Kümeleme

R'de veri kümenizin satır ve sütunlarının isim öznitelikleri vardır. Satır adları nadiren kullanılır ve varsayılan olarak, bir önceki bölümde gördüğünüz gibi, veri kümenizdeki satır sayısına kadar 1'den başlayan tamsayılar şeklinde indisler sağlar. Nitekim, iris veri kümesinde rownames() çağırırsanız, bunların yalnızca 1'den 150'ye kadar numaralandırılmış olduğunu görürsünüz:

 > rownames(iris)
[1] "1"   "2"   "3"   "4"   "5"   "6"   "7"   "8"   "9"   "10"  "11"  "12"  "13"  "14"
[15] "15"  "16"  "17"  "18"  "19"  "20"  "21"  "22"  "23"  "24"  "25"  "26"  "27"  "28"
[29] "29"  "30"  "31"  "32"  "33"  "34"  "35"  "36"  "37"  "38"  "39"  "40"  "41"  "42"
[43] "43"  "44"  "45"  "46"  "47"  "48"  "49"  "50"  "51"  "52"  "53"  "54"  "55"  "56"
[57] "57"  "58"  "59"  "60"  "61"  "62"  "63"  "64"  "65"  "66"  "67"  "68"  "69"  "70"
[71] "71"  "72"  "73"  "74"  "75"  "76"  "77"  "78"  "79"  "80"  "81"  "82"  "83"  "84"
[85] "85"  "86"  "87"  "88"  "89"  "90"  "91"  "92"  "93"  "94"  "95"  "96"  "97"  "98"
[99] "99"  "100" "101" "102" "103" "104" "105" "106" "107" "108" "109" "110" "111" "112"
[113] "113" "114" "115" "116" "117" "118" "119" "120" "121" "122" "123" "124" "125" "126"
[127] "127" "128" "129" "130" "131" "132" "133" "134" "135" "136" "137" "138" "139" "140"
[141] "141" "142" "143" "144" "145" "146" "147" "148" "149" "150"

> nrow(iris)
[1] 150

Satır adları daha çok küçük veri kümelerinde görülür ve veri kümenizdeki gözlemleri kolayca tanımlanabilir kılmak için kullanılır. Örneğin, bir doktorun hastalarına ait sağlık bilgilerini içeren küçük bir veri kümesi için bu veri kümesinin satır adları hastaların tam adları olabilir.

Öte yandan sütun adları, hemen her veri kümesinde yaygındır. Bunlara colnames() işlevi veya names() işleviyle erişebilirsiniz:

colnames(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     

names(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

Veri kümenizi satır ve sütun adlarına göre alt kümeye ayırmak için, yine veri kümesi nesneniz tarafından öneklenmiş köşeli parantezleri kullanın:

# Sepal width of the fifth observation iris["5", "Sepal.Width"] # Sepal width and petal width iris[, c("Sepal.Width", "Petal.Width")]

Hem satır hem de sütun adlarının karakter türünde olduğunu unutmamak önemlidir; bu nedenle tek veya çift tırnak kullanmak kesinlikle gereklidir!

Satır ve Sütunları Değere Göre Alt Kümeleme

Satır ve sütunlarınızı değere göre alt kümelere ayırmak genellikle en fazla esnekliği sağlar. Örneğin, aşağıdaki gibi bir koşullu ifade kullanarak Iris setosa verilerini çıkarabilirsiniz:

> iris[iris$Species == "setosa", ]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1           5.1         3.5          1.4         0.2  setosa
2           4.9         3.0          1.4         0.2  setosa
3           4.7         3.2          1.3         0.2  setosa
4           4.6         3.1          1.5         0.2  setosa

...

47          5.1         3.8          1.6         0.2  setosa
48          4.6         3.2          1.4         0.2  setosa
49          5.3         3.7          1.5         0.2  setosa
50          5.0         3.3          1.4         0.2  setosa

iris$Species == "setosa" gibi koşullu ifadeler köşeli parantezlerdeki satır öğesine (yani virgülden önce gelen ilk öğe) yazılır. İlk öğedeki koşullu ifadeye ek olarak, ikinci öğede sütunları indeks veya isimle belirtebilirsiniz. Aşağıdaki konsolda yalnızca Iris setosa'nın çanak yaprağı ölçümlerini seçmeyi deneyin:

# Print sepal measurements for setosa # Print sepal measurements for setosa (by name) iris[iris$Species == "setosa", c("Sepal.Length", "Sepal.Width")] # Print sepal measurements for setosa (by index) iris[iris$Species == "setosa", 1:2] test_or( test_output_contains('iris[iris$Species == "setosa", c("Sepal.Length", "Sepal.Width")]', incorrect_msg = "Select just the Sepal.Length and Sepal.Width columns for the setosa iris either by name or index."), test_output_contains('iris[iris$Species == "setosa", c("Sepal.Width", "Sepal.Length")]', incorrect_msg = "Select just the Sepal.Length and Sepal.Width columns for the setosa iris either by name or index.")) success_msg("Great work!")

Özet

Bu eğitimde şunları yaptınız:

  • Veri çerçevenizi indekse göre alt kümelere ayırmayı öğrendiniz. Satırlar ve sütunlar, sırasıyla, 1'den satır ve sütun sayısına kadar tamsayılarla indekslenir.
  • Veri çerçevenizi isme göre alt kümelere ayırmayı öğrendiniz. Satır adlarının nadiren belirtildiğini ve sütun adlarının karakter türünde olduğunu gördünüz.
  • Veri çerçevenizi değere göre alt kümeye ayırmak için köşeli parantez içindeki satır öğesinde koşullu ifadeler kullanmayı öğrendiniz.
  • Daha esnek alt kümeleme sağlamak için bu yöntemleri birleştirmeyi öğrendiniz (ör. satırlar için koşullular, sütunlar için indekse veya isme göre alt kümeleme).

Aşağıda öğrendiklerinizi pekiştirmenize yardımcı olacak bazı alıştırmalar yer alıyor. Pratik mükemmelleştirir; bu yüzden bunları deneyin!

Alıştırmalar

Çanak yaprak genişliği taç yaprak uzunluğundan büyük olan tüm gözlemleri seçin.

# Which observations have greater sepal width than petal length? # Which observations have greater sepal width than petal length? iris[iris$Sepal.Width > iris$Petal.Length, ] test_output_contains('iris[iris$Sepal.Width > iris$Petal.Length, ]', incorrect_msg = paste("Select the observations for which Sepal.Width values", "are larger than Petal.Length values.")) success_msg("Nice! Turns out only Iris setosa have this shape.")
Köşeli parantez içinde iris$Sepal.Width > iris$Petal.Length kullanın. Virgülü unutmayın!

Çanak yaprak genişliği, tüm türler arasındaki ortalama çanak yaprak genişliğinden daha büyük olan tüm Iris versicolor'ları seçin.

# Store the versicolor data as an object called versicolor # Select for all Iris versicolor that have bigger than average sepal width # Store the versicolor data as an object called versicolor versicolor <- iris[iris$Species == "versicolor", ] # Select for all Iris versicolor that have bigger than average sepal width versicolor[versicolor$Sepal.Width > mean(iris$Sepal.Width), ] test_object('versicolor', undefined_msg = "Did you define the versicolor object?", incorrect_msg = paste("Select where Species is equal to \"versicolor\".", "Remember to use the == operator!")) test_output_contains('versicolor[versicolor$Sepal.Width > mean(iris$Sepal.Width), ]', incorrect_msg = paste("Not quite! Are you using the mean() function", "to find the average sepal width across all species", "and not just for Iris versicolor?")) success_msg("Great work!")
iris içinde ortalama çanak yaprak genişliğini bulmak için mean() işlevini kullanın, ardından yalnızca ortalamanın üzerindeki değerlere sahip olanları seçmek için versicolor ile öneklenmiş bir koşullu ifade yazın.

Taç yaprak uzunluğu 5 santimetreden küçük olan tüm Iris virginica için ortalama çanak yaprak genişliğini raporlayın.

# You're free to approach this problem however you like! # Store the virginica data as an object called virginica virginica <- iris[iris$Species == "virginica", ] # Average sepal width for Iris virginica that have petal lengths smaller than 5 mean(virginica[virginica$Petal.Length < 5, ]$Sepal.Width) test_output_contains('2.8', incorrect_msg = "Incorrect! This is a tough one!") success_msg("Excellent!")
Önce tüm Iris virginica için alt kümelemeyi deneyin, sonra Petal.Length'in 5'ten küçük olduğu durumları seçin. Ortalamayı mean() işlevini çağırarak bulabilirsiniz.

Verilerinizden içgörü çıkarmanın diğer yolları hakkında daha fazla bilgi edinmek ister misiniz? DataCamp'teki bu kurslara göz atın!

R'de Veri Kümelerini Birleştirme eğitimimize de göz atın.

İster farklı demografik grupların pazarlama kampanyalarına nasıl yanıt verdiğini karşılaştırıyor olun, ister belirli bir zaman aralığına odaklanın ya da envanterdeki birkaç seçili ürünle ilgili bilgileri çekin, veri kümelerini alt kümelere ayırmak veri kümenizden yararlı gözlemler çıkarmanızı sağlar. R, verileri alt kümelere ayırmayı kolay ve sezgisel hale getiren harika bir araçtır. Bu eğitimin sonunda, veri kümenizden istediğiniz bilgileri çıkarmak için gerekli bilgi birikimine sahip olacaksınız.

Verilerinizi alt kümelere ayırmak, verilerinizin içeriğini değiştirmez; yalnızca aklınızdaki hedef için en ilgili bölümü seçer. Genel olarak, veri kümenizin satır ve sütunlarını alt kümelere ayırmanın üç yolu vardır: indekse göre, isme göre ve değere göre.

Satır ve Sütunları İndekse Göre Alt Kümeleme

Satır ve sütunlarınızı alt kümelere ayırmanın bir yolu, veri kümenizin indislerine göre yapmaktır. Bu, satır ve sütunlarınızı "ilk satır", "ikinci ve beşinci sütunlardaki tüm satırlar" ya da "ikinci ila beşinci sütunlardaki ilk satır" olarak tanımlamakla aynıdır. R'de iris adlı bir veri kümesini kullanarak bu ifadeleri belirtelim. Belgelerinde şöyle denir: "[B]u ünlü (Fisher'ın veya Anderson'ın) iris veri kümesi, 3 iris türünün her birinden 50 çiçek için, sırasıyla, çanak yaprak uzunluğu ve genişliği ile taç yaprak uzunluğu ve genişliği değişkenlerinin ölçümlerini santimetre cinsinden verir. Türler Iris setosa, versicolor ve virginica'dır."

# "The first row": iris[1, ] # "All rows in second and fifth columns": iris[, c(2, 5)] # "The first row in second to fifth columns": iris[1, 2:5]

Verilerinizi alt kümelere ayırmak için, veri kümesi nesnenizin ardından köşeli parantezler kullanılır. Veri kümenizin satırları köşeli parantezlerin içindeki ilk öğe olarak, sütunları ise virgülle ayrılmış ikinci öğe olarak belirtilir:

data[rows, columns]

Satır ve Sütunları İsme Göre Alt Kümeleme

R'de veri kümenizin satır ve sütunlarının isim öznitelikleri vardır. Satır adları nadiren kullanılır ve varsayılan olarak, bir önceki bölümde gördüğünüz gibi, veri kümenizdeki satır sayısına kadar 1'den başlayan tamsayılar şeklinde indisler sağlar. Nitekim, iris veri kümesinde rownames() çağırırsanız, bunların yalnızca 1'den 150'ye kadar numaralandırılmış olduğunu görürsünüz:

 > rownames(iris)
[1] "1"   "2"   "3"   "4"   "5"   "6"   "7"   "8"   "9"   "10"  "11"  "12"  "13"  "14"
[15] "15"  "16"  "17"  "18"  "19"  "20"  "21"  "22"  "23"  "24"  "25"  "26"  "27"  "28"
[29] "29"  "30"  "31"  "32"  "33"  "34"  "35"  "36"  "37"  "38"  "39"  "40"  "41"  "42"
[43] "43"  "44"  "45"  "46"  "47"  "48"  "49"  "50"  "51"  "52"  "53"  "54"  "55"  "56"
[57] "57"  "58"  "59"  "60"  "61"  "62"  "63"  "64"  "65"  "66"  "67"  "68"  "69"  "70"
[71] "71"  "72"  "73"  "74"  "75"  "76"  "77"  "78"  "79"  "80"  "81"  "82"  "83"  "84"
[85] "85"  "86"  "87"  "88"  "89"  "90"  "91"  "92"  "93"  "94"  "95"  "96"  "97"  "98"
[99] "99"  "100" "101" "102" "103" "104" "105" "106" "107" "108" "109" "110" "111" "112"
[113] "113" "114" "115" "116" "117" "118" "119" "120" "121" "122" "123" "124" "125" "126"
[127] "127" "128" "129" "130" "131" "132" "133" "134" "135" "136" "137" "138" "139" "140"
[141] "141" "142" "143" "144" "145" "146" "147" "148" "149" "150"

> nrow(iris)
[1] 150

Satır adları daha çok küçük veri kümelerinde görülür ve veri kümenizdeki gözlemleri kolayca tanımlanabilir kılmak için kullanılır. Örneğin, bir doktorun hastalarına ait sağlık bilgilerini içeren küçük bir veri kümesi için bu veri kümesinin satır adları hastaların tam adları olabilir.

Öte yandan sütun adları, hemen her veri kümesinde yaygındır. Bunlara colnames() işlevi veya names() işleviyle erişebilirsiniz:

colnames(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     

names(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

Veri kümenizi satır ve sütun adlarına göre alt kümeye ayırmak için, yine veri kümesi nesneniz tarafından öneklenmiş köşeli parantezleri kullanın:

# Sepal width of the fifth observation iris["5", "Sepal.Width"] # Sepal width and petal width iris[, c("Sepal.Width", "Petal.Width")]

Hem satır hem de sütun adlarının karakter türünde olduğunu unutmamak önemlidir; bu nedenle tek veya çift tırnak kullanmak kesinlikle gereklidir!

Satır ve Sütunları Değere Göre Alt Kümeleme

Satır ve sütunlarınızı değere göre alt kümelere ayırmak genellikle en fazla esnekliği sağlar. Örneğin, aşağıdaki gibi bir koşullu ifade kullanarak Iris setosa verilerini çıkarabilirsiniz:

> iris[iris$Species == "setosa", ]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1           5.1         3.5          1.4         0.2  setosa
2           4.9         3.0          1.4         0.2  setosa
3           4.7         3.2          1.3         0.2  setosa
4           4.6         3.1          1.5         0.2  setosa

...

47          5.1         3.8          1.6         0.2  setosa
48          4.6         3.2          1.4         0.2  setosa
49          5.3         3.7          1.5         0.2  setosa
50          5.0         3.3          1.4         0.2  setosa

iris$Species == "setosa" gibi koşullu ifadeler köşeli parantezlerdeki satır öğesine (yani virgülden önce gelen ilk öğe) yazılır. İlk öğedeki koşullu ifadeye ek olarak, ikinci öğede sütunları indeks veya isimle belirtebilirsiniz. Aşağıdaki konsolda yalnızca Iris setosa'nın çanak yaprağı ölçümlerini seçmeyi deneyin:

# Print sepal measurements for setosa # Print sepal measurements for setosa (by name) iris[iris$Species == "setosa", c("Sepal.Length", "Sepal.Width")] # Print sepal measurements for setosa (by index) iris[iris$Species == "setosa", 1:2] test_or( test_output_contains('iris[iris$Species == "setosa", c("Sepal.Length", "Sepal.Width")]', incorrect_msg = "Select just the Sepal.Length and Sepal.Width columns for the setosa iris either by name or index."), test_output_contains('iris[iris$Species == "setosa", c("Sepal.Width", "Sepal.Length")]', incorrect_msg = "Select just the Sepal.Length and Sepal.Width columns for the setosa iris either by name or index.")) success_msg("Great work!")

Özet

Bu eğitimde şunları yaptınız:

  • Veri çerçevenizi indekse göre alt kümelere ayırmayı öğrendiniz. Satırlar ve sütunlar, sırasıyla, 1'den satır ve sütun sayısına kadar tamsayılarla indekslenir.
  • Veri çerçevenizi isme göre alt kümelere ayırmayı öğrendiniz. Satır adlarının nadiren belirtildiğini ve sütun adlarının karakter türünde olduğunu gördünüz.
  • Veri çerçevenizi değere göre alt kümeye ayırmak için köşeli parantez içindeki satır öğesinde koşullu ifadeler kullanmayı öğrendiniz.
  • Daha esnek alt kümeleme sağlamak için bu yöntemleri birleştirmeyi öğrendiniz (ör. satırlar için koşullular, sütunlar için indekse veya isme göre alt kümeleme).

Aşağıda öğrendiklerinizi pekiştirmenize yardımcı olacak bazı alıştırmalar yer alıyor. Pratik mükemmelleştirir; bu yüzden bunları deneyin!

Alıştırmalar

Çanak yaprak genişliği taç yaprak uzunluğundan büyük olan tüm gözlemleri seçin.

# Which observations have greater sepal width than petal length? # Which observations have greater sepal width than petal length? iris[iris$Sepal.Width > iris$Petal.Length, ] test_output_contains('iris[iris$Sepal.Width > iris$Petal.Length, ]', incorrect_msg = paste("Select the observations for which Sepal.Width values", "are larger than Petal.Length values.")) success_msg("Nice! Turns out only Iris setosa have this shape.")
Köşeli parantez içinde iris$Sepal.Width > iris$Petal.Length kullanın. Virgülü unutmayın!

Çanak yaprak genişliği, tüm türler arasındaki ortalama çanak yaprak genişliğinden daha büyük olan tüm Iris versicolor'ları seçin.

# Store the versicolor data as an object called versicolor # Select for all Iris versicolor that have bigger than average sepal width # Store the versicolor data as an object called versicolor versicolor <- iris[iris$Species == "versicolor", ] # Select for all Iris versicolor that have bigger than average sepal width versicolor[versicolor$Sepal.Width > mean(iris$Sepal.Width), ] test_object('versicolor', undefined_msg = "Did you define the versicolor object?", incorrect_msg = paste("Select where Species is equal to \"versicolor\".", "Remember to use the == operator!")) test_output_contains('versicolor[versicolor$Sepal.Width > mean(iris$Sepal.Width), ]', incorrect_msg = paste("Not quite! Are you using the mean() function", "to find the average sepal width across all species", "and not just for Iris versicolor?")) success_msg("Great work!")
iris içinde ortalama çanak yaprak genişliğini bulmak için mean() işlevini kullanın, ardından yalnızca ortalamanın üzerindeki değerlere sahip olanları seçmek için versicolor ile öneklenmiş bir koşullu ifade yazın.

Taç yaprak uzunluğu 5 santimetreden küçük olan tüm Iris virginica için ortalama çanak yaprak genişliğini raporlayın.

# You're free to approach this problem however you like! # Store the virginica data as an object called virginica virginica <- iris[iris$Species == "virginica", ] # Average sepal width for Iris virginica that have petal lengths smaller than 5 mean(virginica[virginica$Petal.Length < 5, ]$Sepal.Width) test_output_contains('2.8', incorrect_msg = "Incorrect! This is a tough one!") success_msg("Excellent!")
Önce tüm Iris virginica için alt kümelemeyi deneyin, sonra Petal.Length'in 5'ten küçük olduğu durumları seçin. Ortalamayı mean() işlevini çağırarak bulabilirsiniz.

Verilerinizden içgörü çıkarmanın diğer yolları hakkında daha fazla bilgi edinmek ister misiniz? DataCamp'teki bu kurslara göz atın!

R'de Veri Kümelerini Birleştirme eğitimimize de göz atın.

Konular
R
Veri Bilimi

R hakkında daha fazla bilgi edinin

Kurs

dplyr ile Veri Manipülasyonu

4 sa
175.6K
dplyr ile verileri dönüştürmeyi ve işlemeyi öğrenerek Tidyverse becerilerinizi geliştirin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

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.

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.

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

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