Menu
CoddyTech

Mengubah list

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

Sekarang setelah kamu tahu cara membuat list dan mengakses elemennya, mari pelajari cara mengubahnya. Kamu bisa mengubah elemen yang sudah ada, menambahkan elemen baru, atau menghapus elemen sepenuhnya.

Untuk mengubah elemen yang sudah ada, gunakan tanda kurung siku ganda dengan penugasan:

my_list <- list(10, "hello", TRUE)
my_list[[2]] <- "world"
print(my_list)

Output:

[[1]]
[1] 10

[[2]]
[1] "world"

[[3]]
[1] TRUE

Untuk menambahkan elemen baru, cukup tetapkan nilai pada indeks yang belum ada:

my_list <- list(10, "hello")
my_list[[3]] <- FALSE
print(my_list)

Output:

[[1]]
[1] 10

[[2]]
[1] "hello"

[[3]]
[1] FALSE

Untuk menghapus sebuah elemen, tetapkan NULL padanya:

my_list <- list(10, "hello", TRUE)
my_list[[2]] <- NULL
print(my_list)

Output:

[[1]]
[1] 10

[[2]]
[1] TRUE

Perhatikan bahwa setelah menghapus elemen kedua, elemen yang tersisa bergeser untuk mengisi celah. Elemen yang berada di posisi 3 sekarang berada di posisi 2.

challenge icon

Tantangan

Mudah

Kamu akan menerima tiga baris input:

  1. Tiga nilai yang dipisahkan koma untuk menginisialisasi list (misalnya, 50,hello,TRUE)
  2. Indeks dan nilai baru yang dipisahkan koma untuk melakukan modifikasi (misalnya, 2,goodbye)
  3. Indeks elemen yang akan dihapus (misalnya, 3)

Lakukan operasi berikut:

  1. Buat list dengan tiga nilai awal (ubah ke tipe yang sesuai: numerik, karakter, logikal)
  2. Cetak list asli
  3. Ubah elemen pada indeks yang ditentukan dengan nilai baru (pertahankan sebagai string karakter)
  4. Cetak list setelah dimodifikasi
  5. Tambahkan elemen keempat baru ke list dengan nilai 999
  6. Cetak list setelah menambahkan elemen baru
  7. Hapus elemen pada indeks yang ditentukan (dari input ketiga)
  8. Cetak list akhir

Misalnya, jika inputnya adalah:

100,world,FALSE
1,updated
2

Outputnya seharusnya:

[[1]]
[1] 100

[[2]]
[1] "world"

[[3]]
[1] FALSE

[[1]]
[1] "updated"

[[2]]
[1] "world"

[[3]]
[1] FALSE

[[1]]
[1] "updated"

[[2]]
[1] "world"

[[3]]
[1] FALSE

[[4]]
[1] 999

[[1]]
[1] "updated"

[[2]]
[1] FALSE

[[3]]
[1] 999

Penjelasan:

  • List asli: 100, "world", FALSE
  • Setelah mengubah indeks 1: "updated", "world", FALSE
  • Setelah menambahkan elemen keempat: "updated", "world", FALSE, 999
  • Setelah menghapus indeks 2: "updated", FALSE, 999 (elemen yang tersisa bergeser)

Ingat untuk menggunakan tanda kurung siku ganda [[ ]] untuk melakukan modifikasi dan menetapkan NULL untuk menghapus elemen.

Coba sendiri

# Baca input
con <- file("stdin", "r")
initial_values <- suppressWarnings(readLines(con, n = 1))  # Tiga nilai yang dipisahkan koma
modify_input <- suppressWarnings(readLines(con, n = 1))    # Indeks dan nilai baru
remove_index <- suppressWarnings(readLines(con, n = 1))    # Indeks yang akan dihapus
close(con)

# Uraikan nilai awal
values <- strsplit(initial_values, ",")[[1]]
val1 <- as.numeric(values[1])
val2 <- values[2]
val3 <- as.logical(values[3])

# Uraikan input perubahan
mod_parts <- strsplit(modify_input, ",")[[1]]
mod_index <- as.numeric(mod_parts[1])
mod_value <- mod_parts[2]

# Uraikan indeks yang akan dihapus
rem_index <- as.numeric(remove_index)

# TODO: Tulis kodemu di bawah ini
# 1. Buat list berisi tiga nilai awal (val1, val2, val3)
# 2. Cetak list awal
# 3. Ubah elemen pada indeks mod_index menjadi mod_value
# 4. Cetak list setelah diubah
# 5. Tambahkan elemen keempat yang baru dengan nilai 999
# 6. Cetak list setelah penambahan
# 7. Hapus elemen pada rem_index (gunakan NULL)
# 8. Cetak list akhir
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