Функции для работы со строками
Часть раздела Основы путешествия по R на Coddy — урок 66 из 78.
Теперь, когда вы знаете, как разбивать строки на символы, давайте изучим несколько основных функций для работы со строками в R. Эти функции помогут вам измерять, объединять и преобразовывать текстовые данные.
Функция nchar() возвращает количество символов в строке:
word <- "hello"
print(nchar(word))Вывод:
[1] 5Чтобы объединить несколько строк в одну, используйте paste(). По умолчанию она разделяет элементы пробелом:
result <- paste("Hello", "World")
print(result)Вывод:
[1] "Hello World"Используйте paste0(), если вам не нужен разделитель между строками:
result <- paste0("Hello", "World")
print(result)Вывод:
[1] "HelloWorld"Для изменения регистра R предоставляет toupper() и tolower():
print(toupper("hello"))
print(tolower("WORLD"))Вывод:
[1] "HELLO"
[1] "world"Эти функции становятся мощным инструментом в сочетании с изученными вами методами итерации, позволяя обрабатывать и преобразовывать текст посимвольно или в виде целых строк.
Задание
ЛегкоВы получите две строки входных данных:
- Имя (например,
john) - Фамилия (например,
SMITH)
Выполните следующие операции:
- Преобразуйте имя в верхний регистр с помощью
toupper() - Преобразуйте фамилию в нижний регистр с помощью
tolower() - Объедините их в полное имя с помощью
paste()(с пробелом между ними) - Вычислите общее количество символов в полном имени (включая пробел) с помощью
nchar() - Создайте имя пользователя, объединив имя и фамилию без разделителя с помощью
paste0(), всё в нижнем регистре - Выведите полное имя
- Выведите количество символов
- Выведите имя пользователя
Например, если входные данные:
alice
WONDERВыходные данные должны быть:
[1] "ALICE wonder"
[1] 12
[1] "alicewonder"Объяснение: Имя "alice" становится "ALICE" (верхний регистр), фамилия "WONDER" становится "wonder" (нижний регистр). Полное имя "ALICE wonder" содержит 12 символов (включая пробел). Имя пользователя объединяет оба имени в нижнем регистре без разделителя: "alicewonder".
Шпаргалка
Функция nchar() возвращает количество символов в строке:
word <- "hello"
print(nchar(word)) # Вывод: [1] 5Функция paste() по умолчанию объединяет несколько строк, используя пробел в качестве разделителя:
result <- paste("Hello", "World")
print(result) # Вывод: [1] "Hello World"Функция paste0() объединяет строки без разделителя:
result <- paste0("Hello", "World")
print(result) # Вывод: [1] "HelloWorld"Функция toupper() преобразует строки в верхний регистр, а tolower() — в нижний регистр:
print(toupper("hello")) # Вывод: [1] "HELLO"
print(tolower("WORLD")) # Вывод: [1] "world"Попробуйте сами
# Чтение входных данных
con <- file("stdin", "r")
first_name <- suppressWarnings(readLines(con, n = 1))
last_name <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: Напишите ваш код ниже
# 1. Преобразуйте first_name в верхний регистр с помощью toupper()
# 2. Преобразуйте last_name в нижний регистр с помощью tolower()
# 3. Объедините их в full_name с помощью paste()
# 4. Подсчитайте количество символов с помощью nchar()
# 5. Создайте username с помощью paste0() (все в нижнем регистре)
# Вывод результатов
print(full_name)
print(char_count)
print(username)В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы (AND, OR)Логические операторы. Часть 2 (NOT)Повторение: простая логикаВекторизованная логика. Часть 1Векторизованная логика. Часть 27Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Векторы: продвинутый уровень
Срезы и индексация векторовЛогическая индексацияАрифметика и ресайклинг векторовОператор %in%2Переменные и типы данных
Числовой тип данныхЦелочисленный тип данныхСимвольный тип данныхЛогический тип данныхПроверка типов данныхПравила именованияПропущенные значения: NAИтоги — создание переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileBreakNext (Continue)Повторение: ФакториалГенерация последовательностей (seq, :)Вложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыЦелочисленное деление и остаток от деленияОператоры присваиванияПовторение: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод через printКоманда cat для выводаВывод с переменнымиЧтение ввода через readline()Основы преобразования типовПовторение — Калькулятор возрастаПовторение — Истина или ложь9Функции
Объявление функцииАргументы функцииВозвращаемые значенияПовторение — функция SigmaПовторение — функция валидацииЗначения параметров по умолчанию12Итерация по последовательностям
Итерация по элементам вектораИспользование seq_along()Итерация по символам (strsplit)Функции для работы со строками