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 ke 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 elemen, tetapkan NULL kepadanya:

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 modifikasi (misalnya, 2,goodbye)
  3. Indeks elemen yang akan dihapus (misalnya, 3)

Lakukan operasi berikut:

  1. Buat list dengan tiga nilai awal (konversikan ke tipe yang sesuai: numerik, karakter, logis)
  2. Cetak list awal
  3. Ubah elemen pada indeks yang ditentukan dengan nilai baru (tetap gunakan string karakter)
  4. Cetak list setelah modifikasi
  5. Tambahkan elemen keempat 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

Contohnya, jika inputnya adalah:

100,world,FALSE
1,updated
2

Outputnya adalah:

[[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 awal: 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 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 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