Menu
Coddy logo textTech

Manipulowanie ciągami znaków

Lekcja 12 z 14 w kursie Manipulowanie danymi w R w Coddy.

Pakiet stringr udostępnia kompleksowy zestaw funkcji do pracy z ciągami znaków.

Ładowanie pakietu stringr

library(stringr)

Dopasowywanie wzorców

Funkcja str_detect() sprawdza, czy ciąg znaków zawiera wzorzec:

text <- c("apple", "banana", "cherry")
str_detect(text, "an")  # Zwraca: FALSE TRUE FALSE

Zastępowanie ciągów znaków

Funkcja str_replace() zastępuje pierwsze wystąpienie wzorca:

text <- "Hello world"
str_replace(text, "world", "R")  # Zwraca: "Hello R"

Dzielenie ciągów znaków

Podziel ciągi znaków na wektor znakowy za pomocą funkcji str_split():

text <- "apple,banana,cherry"
str_split(text, ",")  # Zwraca listę: list("apple", "banana", "cherry")

Usuwanie białych znaków

Usuń początkowe i końcowe białe znaki za pomocą funkcji str_trim():

text <- "  Hello, R!  "
str_trim(text)  # Zwraca: "Hello, R!"
quiz iconSprawdź się

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

quiz iconSprawdź się

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

quiz iconSprawdź się

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

challenge icon

Wyzwanie

Łatwy

Utwórz funkcję, która przetwarza listę adresów e-mail za pomocą technik manipulowania ciągami znaków z pakietu stringr. Funkcja powinna wykonywać następujące operacje:

  1. Wyodrębnij nazwę użytkownika (część przed @) z każdego adresu e-mail
  2. Zastąp wszystkie cyfry w nazwach użytkowników podkreślnikiem (_)
    • Użyj str_replace_all() ze wzorcem \\d, aby zastąpić wszystkie cyfry. Na przykład: str_replace_all(username, "\\d", "_")
  3. Zamień pierwszą literę każdej nazwy użytkownika na wielką
    • Możesz użyć do tego funkcji str_to_title(). Zamienia ona pierwszą literę każdego słowa w ciągu znaków na wielką.
  4. Usuń początkowe i końcowe białe znaki z przetworzonych nazw użytkowników
  5. Zwróć przetworzone nazwy użytkowników jako ciąg znaków rozdzielonych przecinkami
    • Użyj str_c() z argumentem collapse, aby połączyć nazwy użytkowników. Na przykład: str_c(usernames, collapse = ", ")

Spróbuj swoich sił

# Wczytaj dane wejściowe
con <- file("stdin", "r")
email_list <- suppressWarnings(readLines(con))

suppressPackageStartupMessages(library(stringr))

process_emails <- function(email_list) {
  # Podziel listę adresów e-mail na poszczególne adresy
  emails <- str_split(email_list, ",\\s*")[[1]]
  
  # TODO: Napisz poniżej kod przetwarzający adresy e-mail
  # 1. Wyodrębnij nazwy użytkowników
  # 2. Zastąp cyfry znakami podkreślenia
  # 3. Zamień pierwszą literę na wielką
  # 4. Usuń białe znaki z początku i końca
  # 5. Połącz przetworzone nazwy użytkowników przecinkami
  
  # Miejsce na przetworzone nazwy użytkowników
  processed_usernames <- ""
  
  # Zwróć przetworzone nazwy użytkowników jako ciąg rozdzielony przecinkami
  return(processed_usernames)
}

# Wywołaj funkcję i wyświetl wynik
result <- process_emails(email_list)
cat(result)

Wszystkie lekcje w sekcji Manipulowanie danymi w R

Poćwicz samodzielnie: Kompilator R online