Last chance! 50% off DataCamp Premium
Sale ends in
İ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ı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]
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ı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!") Bu eğitimde şunları yaptınız:
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!
Ç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.")
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!")
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ı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]
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ı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!") Bu eğitimde şunları yaptınız:
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!
Ç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.")
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!")
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.
R hakkında daha fazla bilgi edinin
Kurs
Kurs
Kurs

blog
Abid Ali Awan
14 dk.
blog
Dario Radečić
15 dk.
Eğitim
Adel Nehme
Eğitim
Kurtis Pykes
8 dk.