Lewati ke konten utama

Subset Dataset di R

Subset dataset adalah keterampilan penting bagi setiap profesional data. Pelajari dan praktikkan subset data dalam tutorial interaktif singkat ini!
· 6 mnt Baca

Jelajahi bersama AI

Baik saat Anda membandingkan bagaimana demografi berbeda merespons kampanye pemasaran, menyorot rentang waktu tertentu, atau mengambil informasi tentang beberapa produk terpilih dari inventaris, melakukan subset pada dataset memungkinkan Anda mengekstrak observasi yang berguna dari dataset Anda. R adalah alat yang hebat yang membuat proses subset data menjadi mudah dan intuitif. Di akhir tutorial ini, Anda akan tahu cara mengekstrak informasi yang Anda inginkan dari dataset Anda.

Melakukan subset pada data Anda tidak mengubah konten data tersebut, melainkan hanya memilih bagian yang paling relevan dengan tujuan Anda. Secara umum, ada tiga cara untuk melakukan subset baris dan kolom dataset Anda—berdasarkan indeks, berdasarkan nama, dan berdasarkan nilai.

Subset Baris dan Kolom berdasarkan Indeks

Salah satu cara untuk melakukan subset baris dan kolom adalah berdasarkan indeks dataset Anda. Ini sama seperti mendeskripsikan baris dan kolom sebagai "baris pertama", "semua baris pada kolom kedua dan kelima", atau "baris pertama pada kolom kedua hingga kelima". Mari kita spesifikasikan frasa tersebut menggunakan dataset bernama iris di R. Dari dokumentasinya, "dataset iris yang terkenal (Fisher atau Anderson) ini memberikan pengukuran dalam sentimeter untuk variabel panjang dan lebar sepal serta panjang dan lebar petal, masing-masing, untuk 50 bunga dari masing-masing 3 spesies iris. Spesiesnya adalah Iris setosa, versicolor, dan virginica."


          # "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]
          

Untuk melakukan subset data Anda, tanda kurung siku digunakan setelah objek dataset Anda. Baris dataset Anda ditentukan sebagai elemen pertama di dalam tanda kurung siku, dan kolom dataset Anda ditentukan sebagai elemen kedua, dipisahkan oleh koma:

data[rows, columns]

Subset Baris dan Kolom berdasarkan Nama

Di R, baris dan kolom dalam dataset Anda memiliki atribut nama. Nama baris jarang digunakan dan secara bawaan memberikan indeks—bilangan bulat dari 1 hingga jumlah baris dalam dataset Anda—seperti yang Anda lihat pada bagian sebelumnya. Bahkan, jika Anda memanggil rownames() pada dataset iris, Anda akan melihat bahwa ini hanya diindeks dari 1 hingga 150:

 > 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

Nama baris lebih umum pada dataset kecil dan digunakan agar observasi dalam dataset Anda mudah diidentifikasi. Misalnya, untuk dataset kecil yang berisi informasi kesehatan pasien seorang dokter, nama baris dari dataset ini bisa berupa nama lengkap para pasien.

Nama kolom, di sisi lain, terdapat hampir di setiap dataset. Anda dapat mengaksesnya dengan fungsi colnames() atau fungsi names():

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

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

Untuk melakukan subset dataset Anda berdasarkan nama baris dan kolom, cukup gunakan kembali tanda kurung siku, yang diawali dengan objek dataset Anda:


            # Sepal width dari observasi kelima
            iris["5", "Sepal.Width"]

            # Sepal width dan petal width
            iris[, c("Sepal.Width", "Petal.Width")]
            

Penting untuk dicatat bahwa baik nama baris maupun nama kolom berupa karakter, jadi penggunaan tanda kutip tunggal atau ganda benar-benar diperlukan!

Subset Baris dan Kolom berdasarkan Nilai

Melakukan subset baris dan kolom berdasarkan nilai sering kali memberikan fleksibilitas paling besar. Misalnya, Anda dapat mengekstrak data tentang Iris setosa menggunakan pernyataan kondisional seperti ini:

> 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

Pernyataan kondisional seperti iris$Species == "setosa" ditempatkan pada elemen baris dalam tanda kurung siku (yaitu elemen pertama sebelum koma). Selain pernyataan kondisional pada elemen pertama, Anda dapat menentukan kolom berdasarkan indeks atau nama pada elemen kedua. Pada konsol di bawah, coba pilih hanya pengukuran sepal untuk Iris setosa:


        # Cetak pengukuran sepal untuk setosa
        

Ringkasan

Dalam tutorial ini, Anda:

  • Mempelajari cara melakukan subset data frame berdasarkan indeks. Baris dan kolom diindeks sebagai bilangan bulat dari 1 hingga jumlah baris dan kolom, masing-masing.
  • Mempelajari cara melakukan subset data frame berdasarkan nama. Anda mempelajari bahwa nama baris jarang ditentukan, dan nama kolom bertipe karakter.
  • Mempelajari penggunaan pernyataan kondisional pada elemen baris di dalam tanda kurung siku untuk melakukan subset data frame berdasarkan nilai.
  • Mempelajari cara menggabungkan metode-metode ini untuk memungkinkan subset yang lebih fleksibel (misalnya, menggunakan kondisi untuk baris dan subset berdasarkan indeks atau nama untuk kolom).

Di bawah ini terdapat beberapa latihan untuk membantu memperkuat apa yang telah Anda pelajari. Latihan akan membuat Anda mahir, jadi cobalah!

Latihan Praktik

Pilih semua observasi di mana lebar sepal lebih besar daripada panjang petal.


        # Observasi mana yang memiliki lebar sepal lebih besar daripada panjang petal?
        

Pilih semua Iris versicolor yang lebar sepalnya lebih besar daripada rata-rata lebar sepal di semua spesies.


        # Simpan data versicolor sebagai objek bernama versicolor


        # Pilih semua Iris versicolor yang memiliki lebar sepal di atas rata-rata
        

Laporkan rata-rata lebar sepal untuk semua Iris virginica yang memiliki panjang petal kurang dari 5 sentimeter.


        # Anda bebas menyelesaikan masalah ini dengan cara apa pun!
        

Ingin mempelajari lebih banyak cara untuk mengekstrak wawasan dari data Anda? Lihat kursus-kursus ini di DataCamp!

Lihat juga tutorial kami Merging Datasets in R.

Baik saat Anda membandingkan bagaimana demografi berbeda merespons kampanye pemasaran, menyorot rentang waktu tertentu, atau mengambil informasi tentang beberapa produk terpilih dari inventaris, melakukan subset pada dataset memungkinkan Anda mengekstrak observasi yang berguna dari dataset Anda. R adalah alat yang hebat yang membuat proses subset data menjadi mudah dan intuitif. Di akhir tutorial ini, Anda akan tahu cara mengekstrak informasi yang Anda inginkan dari dataset Anda.

Melakukan subset pada data Anda tidak mengubah konten data tersebut, melainkan hanya memilih bagian yang paling relevan dengan tujuan Anda. Secara umum, ada tiga cara untuk melakukan subset baris dan kolom dataset Anda—berdasarkan indeks, berdasarkan nama, dan berdasarkan nilai.

Subset Baris dan Kolom berdasarkan Indeks

Salah satu cara untuk melakukan subset baris dan kolom adalah berdasarkan indeks dataset Anda. Ini sama seperti mendeskripsikan baris dan kolom sebagai "baris pertama", "semua baris pada kolom kedua dan kelima", atau "baris pertama pada kolom kedua hingga kelima". Mari kita spesifikasikan frasa tersebut menggunakan dataset bernama iris di R. Dari dokumentasinya, "dataset iris yang terkenal (Fisher atau Anderson) ini memberikan pengukuran dalam sentimeter untuk variabel panjang dan lebar sepal serta panjang dan lebar petal, masing-masing, untuk 50 bunga dari masing-masing 3 spesies iris. Spesiesnya adalah Iris setosa, versicolor, dan virginica."


          # "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]
          

Untuk melakukan subset data Anda, tanda kurung siku digunakan setelah objek dataset Anda. Baris dataset Anda ditentukan sebagai elemen pertama di dalam tanda kurung siku, dan kolom dataset Anda ditentukan sebagai elemen kedua, dipisahkan oleh koma:

data[rows, columns]

Subset Baris dan Kolom berdasarkan Nama

Di R, baris dan kolom dalam dataset Anda memiliki atribut nama. Nama baris jarang digunakan dan secara bawaan memberikan indeks—bilangan bulat dari 1 hingga jumlah baris dalam dataset Anda—seperti yang Anda lihat pada bagian sebelumnya. Bahkan, jika Anda memanggil rownames() pada dataset iris, Anda akan melihat bahwa ini hanya diindeks dari 1 hingga 150:

 > 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

Nama baris lebih umum pada dataset kecil dan digunakan agar observasi dalam dataset Anda mudah diidentifikasi. Misalnya, untuk dataset kecil yang berisi informasi kesehatan pasien seorang dokter, nama baris dari dataset ini bisa berupa nama lengkap para pasien.

Nama kolom, di sisi lain, terdapat hampir di setiap dataset. Anda dapat mengaksesnya dengan fungsi colnames() atau fungsi names():

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

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

Untuk melakukan subset dataset Anda berdasarkan nama baris dan kolom, cukup gunakan kembali tanda kurung siku, yang diawali dengan objek dataset Anda:


            # Sepal width dari observasi kelima
            iris["5", "Sepal.Width"]

            # Sepal width dan petal width
            iris[, c("Sepal.Width", "Petal.Width")]
            

Penting untuk dicatat bahwa baik nama baris maupun nama kolom berupa karakter, jadi penggunaan tanda kutip tunggal atau ganda benar-benar diperlukan!

Subset Baris dan Kolom berdasarkan Nilai

Melakukan subset baris dan kolom berdasarkan nilai sering kali memberikan fleksibilitas paling besar. Misalnya, Anda dapat mengekstrak data tentang Iris setosa menggunakan pernyataan kondisional seperti ini:

> 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

Pernyataan kondisional seperti iris$Species == "setosa" ditempatkan pada elemen baris dalam tanda kurung siku (yaitu elemen pertama sebelum koma). Selain pernyataan kondisional pada elemen pertama, Anda dapat menentukan kolom berdasarkan indeks atau nama pada elemen kedua. Pada konsol di bawah, coba pilih hanya pengukuran sepal untuk Iris setosa:


        # Cetak pengukuran sepal untuk setosa
        

Ringkasan

Dalam tutorial ini, Anda:

  • Mempelajari cara melakukan subset data frame berdasarkan indeks. Baris dan kolom diindeks sebagai bilangan bulat dari 1 hingga jumlah baris dan kolom, masing-masing.
  • Mempelajari cara melakukan subset data frame berdasarkan nama. Anda mempelajari bahwa nama baris jarang ditentukan, dan nama kolom bertipe karakter.
  • Mempelajari penggunaan pernyataan kondisional pada elemen baris di dalam tanda kurung siku untuk melakukan subset data frame berdasarkan nilai.
  • Mempelajari cara menggabungkan metode-metode ini untuk memungkinkan subset yang lebih fleksibel (misalnya, menggunakan kondisi untuk baris dan subset berdasarkan indeks atau nama untuk kolom).

Di bawah ini terdapat beberapa latihan untuk membantu memperkuat apa yang telah Anda pelajari. Latihan akan membuat Anda mahir, jadi cobalah!

Latihan Praktik

Pilih semua observasi di mana lebar sepal lebih besar daripada panjang petal.


        # Observasi mana yang memiliki lebar sepal lebih besar daripada panjang petal?
        

Pilih semua Iris versicolor yang lebar sepalnya lebih besar daripada rata-rata lebar sepal di semua spesies.


        # Simpan data versicolor sebagai objek bernama versicolor


        # Pilih semua Iris versicolor yang memiliki lebar sepal di atas rata-rata
        

Laporkan rata-rata lebar sepal untuk semua Iris virginica yang memiliki panjang petal kurang dari 5 sentimeter.


        # Anda bebas menyelesaikan masalah ini dengan cara apa pun!
        

Ingin mempelajari lebih banyak cara untuk mengekstrak wawasan dari data Anda? Lihat kursus-kursus ini di DataCamp!

Lihat juga tutorial kami Merging Datasets in R.

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026