Menu
Coddy logo textTech

Zastępowanie tekstu

Część sekcji Logika i przepływ sterowania ścieżki R w Coddy. Lekcja 5 z 64.

sub(pattern, replacement, x) zastępuje pierwsze dopasowanie w każdym ciągu znaków, a gsub() zastępuje każde dopasowanie. Podobnie jak w przypadku grepl(), fixed = TRUE traktuje wzorzec jako zwykły tekst.

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

Wynik:

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

Zastąpienie pustym ciągiem znaków usuwa dopasowania. Dzięki temu tekst jest czyszczony przed konwersją na liczbę:

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

Wynik:

[1] "1299.00"
[1] 2598

Bez fixed = TRUE wzorzec jest wyrażeniem regularnym. Dwa przydatne elementy: [0-9] dopasowuje dowolną cyfrę, a + powtarza poprzedzający go element co najmniej raz, więc " +" dopasowuje ciąg spacji.

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

Wynik:

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

Podobnie jak inne funkcje operujące na ciągach znaków, sub() i gsub() działają na każdym elemencie wektora:

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

Wynik:

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

Wyzwanie

Łatwy

Uzupełnij slugify(title). Zwróć tytuł zapisany małymi literami, bez spacji na początku ani na końcu, a każdy ciąg spacji zastąp pojedynczym znakiem -: Hello World daje hello-world.

Dostarczony kod odczytuje tytuł i wypisuje zwróconą wartość.

Spróbuj swoich sił

slugify <- function(title) {
  # Napisz tutaj swój kod
  title
}

# Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
input <- suppressWarnings(readLines(file("stdin")))
cat(slugify(input[1]), sep = "\n")
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator R online