Menu
Coddy logo textTech

Listeleri Düzenleme

Coddy'nin R Journey'sinin Temeller bölümünün bir parçası. Ders 73 / 78.

Artık listeleri nasıl oluşturacağınızı ve öğelerine nasıl erişeceğinizi bildiğinize göre, onları nasıl değiştireceğinizi öğrenelim. Mevcut öğeleri değiştirebilir, yenilerini ekleyebilir veya öğeleri tamamen kaldırabilirsiniz.

Mevcut bir öğeyi değiştirmek için atama ile birlikte çift köşeli parantez kullanın:

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

Çıktı:

[[1]]
[1] 10

[[2]]
[1] "world"

[[3]]
[1] TRUE

Yeni bir öğe eklemek için, henüz mevcut olmayan bir dizine atama yapmanız yeterlidir:

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

Çıktı:

[[1]]
[1] 10

[[2]]
[1] "hello"

[[3]]
[1] FALSE

Bir öğeyi kaldırmak için ona NULL atayın:

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

Çıktı:

[[1]]
[1] 10

[[2]]
[1] TRUE

İkinci öğeyi kaldırdıktan sonra, kalan öğelerin boşluğu doldurmak için kaydığına dikkat edin. 3. konumda olan öğe artık 2. konumdadır.

challenge icon

Görev

Kolay

Üç satır girdi alacaksınız:

  1. Bir listeyi başlatmak için virgülle ayrılmış üç değer (ör. 50,hello,TRUE)
  2. Değişiklik için virgülle ayrılmış bir dizin ve yeni değer (ör. 2,goodbye)
  3. Kaldırılacak öğenin dizini (ör. 3)

Aşağıdaki işlemleri gerçekleştirin:

  1. İlk üç değerle bir liste oluşturun (bunları uygun türlere dönüştürün: sayısal, karakter, mantıksal)
  2. Özgün listeyi yazdırın
  3. Belirtilen dizindeki öğeyi yeni değerle değiştirin (karakter dizesi olarak bırakın)
  4. Değişiklikten sonraki listeyi yazdırın
  5. 999 değeriyle listeye yeni bir dördüncü öğe ekleyin
  6. Yeni öğeyi ekledikten sonraki listeyi yazdırın
  7. Belirtilen dizindeki öğeyi (üçüncü girdiden) kaldırın
  8. Son listeyi yazdırın

Örneğin girdiler şöyleyse:

100,world,FALSE
1,updated
2

Çıktı şöyle olmalıdır:

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

Açıklama:

  • Özgün liste: 100, "world", FALSE
  • 1. dizin değiştirildikten sonra: "updated", "world", FALSE
  • Dördüncü öğe eklendikten sonra: "updated", "world", FALSE, 999
  • 2. dizin kaldırıldıktan sonra: "updated", FALSE, 999 (kalan öğeler kayar)

Değişiklikler için çift köşeli parantezleri [[ ]] kullanmayı ve öğeleri kaldırmak için NULL atamayı unutmayın.

Kendin dene

# Girdiyi oku
con <- file("stdin", "r")
initial_values <- suppressWarnings(readLines(con, n = 1))  # Virgülle ayrılmış üç değer
modify_input <- suppressWarnings(readLines(con, n = 1))    # İndeks ve yeni değer
remove_index <- suppressWarnings(readLines(con, n = 1))    # Kaldırılacak indeks
close(con)

# Başlangıç değerlerini ayrıştır
values <- strsplit(initial_values, ",")[[1]]
val1 <- as.numeric(values[1])
val2 <- values[2]
val3 <- as.logical(values[3])

# Değişiklik girdisini ayrıştır
mod_parts <- strsplit(modify_input, ",")[[1]]
mod_index <- as.numeric(mod_parts[1])
mod_value <- mod_parts[2]

# Kaldırma indeksini ayrıştır
rem_index <- as.numeric(remove_index)

# TODO: Kodunuzu aşağıya yazın
# 1. Üç başlangıç değeriyle (val1, val2, val3) bir liste oluşturun
# 2. Orijinal listeyi yazdırın
# 3. mod_index konumundaki öğeyi mod_value ile değiştirin
# 4. Değişiklikten sonra listeyi yazdırın
# 5. 999 değeriyle yeni bir dördüncü eleman ekleyin
# 6. Ekleme işleminden sonra listeyi yazdırın
# 7. rem_index konumundaki elemanı kaldırın (NULL kullanın)
# 8. Son listeyi yazdırın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online R derleyicisi