0Pricing
R Academy · Урок

Создание строк с помощью paste() и paste0()

Объединяйте строки с разделителями с помощью paste и paste0.

«Создание строк с помощью paste() и paste0()» — бесплатный урок R Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения R Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс R Academy содержит 4 уроков всего.

Основы paste()

paste() преобразует свои аргументы в текстовые строки и объединяет их с разделителем. По умолчанию разделителем служит один пробел ' '. Это самая универсальная функция базового R для создания строк.

paste('Hello', 'World')
paste('User', 'ID', ':', 42)
paste('R', 'version', '4.3.1')

paste0() — сокращённый вариант без разделителя

paste0() идентична вызову paste(..., sep=''). Она объединяет строки без разделителя между ними. Это основная функция для программного создания путей к файлам, имён столбцов и URL-адресов.

paste0('file_', 1:5, '.csv')
paste0('col_', c('a', 'b', 'c'))
paste0('/home/user/', 'data.csv')

Изменение разделителя с помощью sep

Аргумент sep определяет, что будет помещено между каждым аргументом. Используйте его для создания строк CSV, путей к файлам, строк с датами и любых других разделённых выводимых данных.

# Hyphen-separated date
paste('2024', '05', '29', sep = '-')
# Slash-separated path
paste('home', 'user', 'docs', sep = '/')
# Comma-separated
paste('Alice', 'Bob', 'Carol', sep = ', ')

Векторизованная paste()

paste() является векторизованной функцией: при передаче векторов она попарно объединяет элементы с одинаковыми позициями, при необходимости повторяя элементы более коротких векторов. Результат имеет длину самого длинного входного вектора.

labels <- c('Item', 'Item', 'Item')
numbers <- c(1, 2, 3)
paste(labels, numbers)
# Shorter form using recycling
paste('Item', 1:5)

Объединение вектора в одну строку

Аргумент collapse объединяет все элементы результирующего вектора в одну строку, используя заданное значение как разделитель между элементами. Без collapse получается текстовый вектор, а с ним — одна строка.

fruits <- c('apple', 'banana', 'cherry')
# Without collapse: character vector of length 3
paste('I like', fruits)
# With collapse: single string
paste('I like', fruits, collapse = ' and ')

Совместное использование sep и collapse

Вы можете использовать sep и collapse в одном вызове. Сначала sep объединяет элементы векторов аргументов по позициям, затем collapse объединяет полученный текстовый вектор в одну строку.

first <- c('John', 'Jane', 'Bob')
last  <- c('Doe', 'Smith', 'Brown')
# sep joins first+last, collapse joins all three names
paste(first, last, sep = ' ', collapse = ', ')

paste0() для создания имён переменных

paste0() часто используют для программного создания имён переменных или столбцов, путей к файлам и строк в стиле SQL без лишних разделителей.

# Build column names
col_names <- paste0('Q', 1:5, '_score')
print(col_names)
# Build file paths
years <- 2020:2023
files <- paste0('data/report_', years, '.csv')
print(files)

Преобразование чисел в paste()

paste() автоматически преобразует числа, логические значения и другие типы в текстовые строки. Сначала вызывать as.character() не нужно — paste() выполняет это преобразование автоматически.

n <- 42
pi_val <- 3.14159
flag <- TRUE
paste('Count:', n)
paste('Pi =', pi_val)
paste('Active:', flag)
paste0('n=', n, ' pi=', round(pi_val, 2))

Создание строк в формате CSV

Объедините векторизованную функцию paste() с collapse = ',', чтобы создать простые строки вывода в формате CSV из таблицы данных без загрузки внешнего пакета.

names_vec  <- c('Alice', 'Bob', 'Carol')
scores_vec <- c(85, 92, 78)
rows <- paste(names_vec, scores_vec, sep = ',')
cat(paste(rows, collapse = '\n'))

Обработка NA в paste()

В отличие от многих функций R, paste() преобразует NA в буквальную строку 'NA', а не распространяет пропущенное значение. Это удобно, но может удивить пользователей, ожидающих незаметной обработки пропущенных значений.

x <- c('Hello', NA, 'World')
paste(x, '!')
# NA becomes the string 'NA'
result <- paste0('Value: ', NA)
print(result)
print(class(result))

Практические приёмы: paste() в отчётах

Функция paste особенно полезна при создании удобных для чтения строк отчётов. Объединяйте paste0(), round() и paste() с параметром collapse, чтобы формировать сводные предложения на основе данных.

mean_score <- 83.7
n_students  <- 28
high_score  <- 99
msg <- paste0(
  'Class summary: ', n_students, ' students, ',
  'mean score ', round(mean_score, 1), ', ',
  'top score ', high_score, '.'
)
cat(msg)

Быстрая проверка

Что делает аргумент collapse в функции paste()?

Основные выводы о paste() и paste0()

Основные выводы о paste() и paste0():

  • paste(a, b) объединяет с пробелом, а paste0(a, b) — без разделителя
  • sep управляет строкой, помещаемой между аргументами
  • collapse сводит результирующий вектор к одной строке
  • Обе функции векторизованы и повторяют более короткие аргументы
  • NA преобразуется в буквальную строку 'NA'
  • Числа и логические значения автоматически преобразуются в текст
# sep vs collapse at a glance
x <- c('a', 'b', 'c')
y <- c(1, 2, 3)
cat('paste (sep=-)  :', paste(x, y, sep = '-'), '\n')
cat('paste (collapse):', paste(x, collapse = '+'), '\n')
cat('paste0          :', paste0(x, y), '\n')

Часто задаваемые вопросы

Урок «Создание строк с помощью paste() и paste0()» бесплатный?

Да — полный текст урока «Создание строк с помощью paste() и paste0()» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс R Academy, подпишись на CoddyKit PRO. Курс R Academy содержит 4 уроков всего.

Чему я научусь в уроке «Создание строк с помощью paste() и paste0()»?

Объединяйте строки с разделителями с помощью paste и paste0. Ты практикуешь R Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать R Academy?

Предыдущий опыт не требуется. R Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Создание строк с помощью paste() и paste0()»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке R Academy?

Да. Каждый урок R Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание строк с помощью paste() и paste0()
  2. Форматированный вывод с помощью sprintf()
  3. Вывод с помощью cat() и print()
  4. Заполнение и выравнивание строк
← Назад к R Academy