Menu
Coddy logo textTech

Funkcje manipulacji ciągami znaków

Część sekcji Podstawy ścieżki R w Coddy. Lekcja 66 z 78.

Skoro już wiesz, jak dzielić ciągi znaków na pojedyncze znaki, przyjrzyjmy się kilku podstawowym funkcjom do pracy z ciągami znaków w R. Funkcje te pomagają mierzyć, łączyć i przekształcać dane tekstowe.

Funkcja nchar() zwraca liczbę znaków w ciągu znaków:

word <- "hello"
print(nchar(word))

Wynik:

[1] 5

Aby połączyć wiele ciągów znaków w jeden, użyj paste(). Domyślnie rozdziela elementy spacją:

result <- paste("Hello", "World")
print(result)

Wynik:

[1] "Hello World"

Użyj paste0(), gdy nie chcesz separatora między ciągami znaków:

result <- paste0("Hello", "World")
print(result)

Wynik:

[1] "HelloWorld"

Do zmiany wielkości liter R udostępnia funkcje toupper() i tolower():

print(toupper("hello"))
print(tolower("WORLD"))

Wynik:

[1] "HELLO"
[1] "world"

Te funkcje stają się potężne, gdy połączysz je z poznanymi technikami iteracji, co pozwala przetwarzać i przekształcać tekst znak po znaku lub jako całe ciągi znaków.

challenge icon

Wyzwanie

Łatwy

Otrzymasz dwa wiersze danych wejściowych:

  1. Imię (np. john)
  2. Nazwisko (np. SMITH)

Wykonaj następujące operacje:

  1. Zamień imię na wielkie litery za pomocą toupper()
  2. Zamień nazwisko na małe litery za pomocą tolower()
  3. Połącz je w pełne imię i nazwisko za pomocą paste() (ze spacją pomiędzy nimi)
  4. Oblicz łączną liczbę znaków w pełnym imieniu i nazwisku (łącznie ze spacją) za pomocą nchar()
  5. Utwórz nazwę użytkownika, łącząc imię i nazwisko bez separatora za pomocą paste0(), zapisując całość małymi literami
  6. Wypisz pełne imię i nazwisko
  7. Wypisz liczbę znaków
  8. Wypisz nazwę użytkownika

Na przykład, jeśli dane wejściowe to:

alice
WONDER

Wynik powinien być następujący:

[1] "ALICE wonder"
[1] 12
[1] "alicewonder"

Wyjaśnienie: Imię "alice" zmienia się na "ALICE" (wielkie litery), a nazwisko "WONDER" na "wonder" (małe litery). Pełne imię i nazwisko "ALICE wonder" ma 12 znaków (łącznie ze spacją). Nazwa użytkownika łączy oba imiona małymi literami, bez separatora: "alicewonder".

Spróbuj swoich sił

# Odczytaj dane wejściowe
con <- file("stdin", "r")
first_name <- suppressWarnings(readLines(con, n = 1))
last_name <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: Napisz swój kod poniżej
# 1. Zamień first_name na wielkie litery za pomocą toupper()
# 2. Zamień last_name na małe litery za pomocą tolower()
# 3. Połącz je w full_name za pomocą paste()
# 4. Oblicz liczbę znaków za pomocą nchar()
# 5. Utwórz username za pomocą paste0() (wyłącznie małe litery)

# Wyświetl wyniki
print(full_name)
print(char_count)
print(username)
quiz iconSprawdź się

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

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator R online