Menu
Coddy logo textTech

Karakterler Üzerinde Yineleme (strsplit)

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

Bir dizedeki her bir karakteri ayrı ayrı işlemeniz gerekirse ne olur? Vektörlerin aksine, R'da bir dizenin karakterleri arasında doğrudan döngü kuramazsınız. strsplit() fonksiyonu, bir dizeyi karakterlerden oluşan bir vektöre bölerek bu sorunu çözer.

strsplit() fonksiyonu iki argüman alır: bölünecek dize ve ayırıcı. Karakterlerine ayırmak için, ayırıcı olarak boş bir dize "" kullanın:

word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)

Çıktı:

[1] "h" "e" "l" "l" "o"

Sondaki [[1]] ifadesine dikkat edin. Bunun nedeni strsplit() fonksiyonunun bir liste döndürmesidir ve karakter vektörümüzü elde etmek için ilk öğeyi çıkarmamız gerekir. Karakterleri bir vektör olarak elde ettiğinizde, daha önce öğrendiğiniz teknikleri kullanarak bunlar üzerinde yineleme yapabilirsiniz:

word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
  print(char)
}

Çıktı:

[1] "R"

Bu teknik, belirli karakterleri saymak, dizeleri tersine çevirmek veya girişi karakter karakter doğrulamak gibi görevler için gereklidir.

challenge icon

Görev

Kolay

Bir kelime içeren tek satırlık bir girdi alacaksınız (ör. programming).

Dizgeyi tek tek karakterlere ayırmak için strsplit() kullanarak:

  1. Girdi kelimesini karakterlerden oluşan bir vektöre ayırın
  2. Vektördeki her karakter üzerinde döngü oluşturun
  3. Kelimede "a" harfinin kaç kez göründüğünü sayın (büyük/küçük harfe duyarlı)
  4. print() kullanarak her karakteri kendi satırında yazdırın
  5. Döngüden sonra, biçim olarak: cat() ve ardından yeni satır kullanarak sayıyı Count of 'a': X ile yazdırın

Örneğin, girdi şuysa:

banana

Çıktı şu olmalıdır:

[1] "b"
[1] "a"
[1] "n"
[1] "a"
[1] "n"
[1] "a"
Count of 'a': 3

Açıklama: "banana" kelimesi karakterlere c("b", "a", "n", "a", "n", "a") ayrılır. Her karakter yazdırılır ve "a" harfi 3 kez görünür.

Kendin dene

# Girdiyi oku
con <- file("stdin", "r")
word <- suppressWarnings(readLines(con, n = 1))

# 'a' harfi için sayacı başlat
count_a <- 0

# TODO: Kodunuzu aşağıya yazın
# 1. Kelimeyi tekil karakterlere bölmek için strsplit() kullanın
# 2. Her karakter için döngü oluşturun
# 3. print() kullanarak her karakteri yazdırın
# 4. 'a' harfinin kaç kez geçtiğini sayın

# 'a' sayısını çıktı olarak ver
cat("Count of 'a': ", count_a, "\n", sep = "")
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