Menu
CoddyTech

Pemotongan dan Pengindeksan Vektor

Termasuk bagian Dasar-Dasar dalam perjalanan R di Coddy. Pelajaran 67 dari 78.

Kamu sudah belajar cara mengakses elemen tunggal dan melakukan iterasi pada vector. Sekarang, mari kita pelajari cara mengambil beberapa elemen sekaligus menggunakan slicing. Teknik ini memungkinkan kamu mengambil subset dari vector dalam satu operasi.

Untuk mengekstrak beberapa elemen, masukkan vektor indeks di dalam tanda kurung siku:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[c(1, 3, 5)])

Output:

[1] 10 30 50

Kamu juga bisa menggunakan operator titik dua untuk memilih rentang elemen yang berurutan:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[2:4])

Output:

[1] 20 30 40

Indeks negatif sangat berguna di R. Indeks ini mengecualikan elemen, bukan memilihnya:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[-2])

Output:

[1] 10 30 40 50

Kamu dapat mengecualikan beberapa elemen dengan meneruskan vector berisi indeks negatif:

numbers <- c(10, 20, 30, 40, 50)
print(numbers[-c(1, 5)])

Output:

[1] 20 30 40

Ingat: kamu tidak bisa mencampur indeks positif dan negatif dalam pemilihan yang sama. R akan menghasilkan error jika kamu mencoba numbers[c(1, -2)].

challenge icon

Tantangan

Mudah

Kamu akan menerima dua baris input:

  1. List angka yang dipisahkan dengan koma (misalnya, 100,200,300,400,500,600,700)
  2. Dua indeks yang dipisahkan dengan koma, yang menunjukkan rentang untuk dikecualikan (misalnya, 2,5)

Kode awal sudah membaca input dan membuat vector numerik. Cetak tepat empat baris, dengan urutan berikut:

  1. Cetak elemen pada posisi 1, 3, dan 5 menggunakan vector indeks
  2. Cetak elemen dari posisi 2 hingga posisi 4 menggunakan operator titik dua
  3. Cetak vector dengan mengecualikan elemen pada indeks pertama yang diberikan (menggunakan pengindeksan negatif)
  4. Cetak vector dengan mengecualikan elemen dari indeks pertama hingga indeks kedua (menggunakan pengindeksan negatif dengan rentang)

Misalnya, jika inputnya adalah:

10,20,30,40,50,60,70
3,5

Outputnya harus:

[1] 10 30 50
[1] 20 30 40
[1] 10 20 40 50 60 70
[1] 10 20 60 70

Penjelasan:

  • Elemen pada posisi 1, 3, 5 adalah: 10, 30, 50
  • Elemen dari posisi 2 hingga 4 adalah: 20, 30, 40
  • Mengecualikan posisi 3 menghasilkan: 10, 20, 40, 50, 60, 70
  • Mengecualikan posisi 3 hingga 5 menghasilkan: 10, 20, 60, 70

Coba sendiri

# Baca input
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
indices_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# Ubah angka yang dipisahkan koma menjadi vektor numerik
numbers <- as.numeric(strsplit(numbers_input, ",")[[1]])

# Ubah kedua indeks menjadi angka
indices <- as.numeric(strsplit(indices_input, ",")[[1]])
idx1 <- indices[1]
idx2 <- indices[2]

# TODO: Tulis kodemu di bawah ini
# 1. Cetak elemen pada posisi 1, 3, dan 5 menggunakan vektor indeks

# 2. Cetak elemen dari posisi 2 hingga posisi 4 menggunakan operator titik dua

# 3. Cetak vektor tanpa elemen pada idx1 (pengindeksan negatif)

# 4. Cetak vektor tanpa elemen dari idx1 hingga idx2 (pengindeksan negatif dengan rentang)
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler R online