Ana içeriğe geç

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!
· 6 dk. oku

Yapay Zeka ile Keşfedin

İ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
        

Ö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?
        

Ç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
        

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!
        

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
        

Ö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?
        

Ç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
        

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!
        

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

İlgili