Menu
Coddy logo textTech

Metin Değiştirme

Coddy'nin R Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 5 / 64.

sub(pattern, replacement, x) her dizedeki ilk eşleşmeyi, gsub() ise her eşleşmeyi değiştirir. grepl()'de olduğu gibi, fixed = TRUE deseni düz metin olarak ele alır.

date <- "2024-01-15"
print(sub("-", "/", date, fixed = TRUE))
print(gsub("-", "/", date, fixed = TRUE))

Çıktı:

[1] "2024/01-15"
[1] "2024/01/15"

Boş bir dizeyle değiştirmek, eşleşmeleri siler. Bu, metni sayıya dönüştürmeden önce temizler:

price <- "$1,299.00"
clean <- gsub(",", "", sub("$", "", price, fixed = TRUE), fixed = TRUE)
print(clean)
print(as.numeric(clean) * 2)

Çıktı:

[1] "1299.00"
[1] 2598

fixed = TRUE olmadan desen bir düzenli ifadedir. İki kullanışlı parça: [0-9] herhangi bir rakamla eşleşir ve + kendisinden önceki parçayı bir veya daha fazla kez tekrarlar; bu nedenle " +" bir boşluk dizisiyle eşleşir.

msg <- "call  me   at 555 0199"
print(gsub(" +", " ", msg))
print(gsub("[0-9]", "#", msg))

Çıktı:

[1] "call me at 555 0199"
[1] "call  me   at ### ####"

Diğer dize işlevleri gibi, sub() ve gsub() bir vektörün her öğesi üzerinde çalışır:

codes <- c("a-1", "b-22", "c-3")
print(gsub("-", "", codes, fixed = TRUE))
print(sub("-[0-9]+", "", codes))

Çıktı:

[1] "a1"  "b22" "c3" 
[1] "a" "b" "c"
challenge icon

Görev

Kolay

slugify(title) işlevini tamamlayın. Başlığı küçük harfle, başında veya sonunda boşluk olmadan ve her boşluk dizisini tek bir - ile değiştirilmiş olarak döndürün: Hello World , hello-world olur.

Sağlanan kod başlığı okur ve döndürülen değeri yazdırır.

Kendin dene

slugify <- function(title) {
  # Kodunuzu buraya yazın
  title
}

# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
cat(slugify(input[1]), sep = "\n")
quiz iconKendini test et

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

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online R derleyicisi