paste()とpaste0()による文字列の作成
pasteとpaste0を使い、区切り文字を挿入して文字列を連結します。
「paste()とpaste0()による文字列の作成」はCoddyKit上の無料R Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはR Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 R Academyコースには全4レッスンが含まれています。
paste()の基本
paste()は引数を文字列に変換し、区切り文字で連結します。デフォルトの区切り文字は単一のスペース' 'です。base 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)ベクトルを1つの文字列にまとめる
collapse引数を使うと、結果のベクトルのすべての要素を、指定した値を区切り文字として1つの文字列に連結できます。collapseなしでは文字ベクトルになり、指定すると1つの文字列になります。
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で結果の文字ベクトルを1つの文字列にまとめます。
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'))paste()でのNA処理
多くの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)確認問題
paste()のcollapse引数は何をしますか。
paste()とpaste0():要点
paste()とpaste0()の要点:
paste(a, b)はスペースで連結し、paste0(a, b)は区切り文字なしで連結しますsepは各引数の間に置く文字列を制御しますcollapseは結果のベクトルを1つの文字列にまとめます- どちらの関数もベクトル化されており、短い引数はリサイクルされます
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時間対応のAIチューター)、R Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 R Academyコースには全4レッスンが含まれています。
「paste()とpaste0()による文字列の作成」で何を学びますか?
pasteとpaste0を使い、区切り文字を挿入して文字列を連結します。 ブラウザで直接実行するハンズオンコードでR Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
R Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのR Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「paste()とpaste0()による文字列の作成」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このR Academyレッスンでコードを書いて実行できますか?
はい。すべてのR Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- paste()とpaste0()による文字列の作成
- sprintf()による整形出力
- cat()とprint()による出力表示
- 文字列のパディングと配置