5.文字列連結-SQL経験者のためのR入門 

SQLの SELECT CONCAT(FIELD1, ":", FIELD2) FROM TABLE のように、複数の文字列や列を結合する操作をR言語で説明します。


🔗 文字列の結合 (SELECT CONCAT(…))

SQLで CONCAT() 関数を使用して文字列(リテラル値)と列(フィールド)を連結し、新しい列を作成する操作は、R言語では主に paste0() 関数や、dplyr パッケージと組み合わせて mutate() 関数と paste0() を使用して行います。

1. paste0() 関数(Rで最も一般的な結合方法)

R言語の基本機能である paste0() 関数は、複数の引数を結合し、それらを新しい一つの文字列にするために使われます。デフォルトでは、区切り文字(セパレータ)なしで結合します。

SQLR言語 (base R / dplyr)説明
SELECT CONCAT(FIELD1, ":", FIELD2) FROM TABLETABLE %>% mutate(NewField = paste0(FIELD1, ":", FIELD2))FIELD1 の値、リテラル値 ":"FIELD2 の値を結合し、NewField という新しい列として追加します。

コード例

データフレーム productscategoryitem_id: で結合して、full_code という新しい列を作成する場合。

R

# SQL:
# SELECT CONCAT(category, ":", item_id) AS full_code FROM products

# R言語:
library(dplyr)

products %>%
  mutate(full_code = paste0(category, ":", item_id))

2. paste() 関数(区切り文字を指定する場合)

もし結合したい文字列の間に、毎回同じ区切り文字を挿入したい場合は、paste() 関数を使うと便利です。paste() は、引数として与えられたすべての要素の間に、デフォルトで半角スペースを挿入します。区切り文字は sep 引数で指定できます。

SQLの意図R言語 (paste()関数)説明
CONCAT_WS('-', FIELD1, FIELD2) (区切り文字指定の結合)paste(FIELD1, FIELD2, sep = "-")FIELD1FIELD2 の間に、指定した区切り文字**-**を挿入して結合します。

コード例

first_namelast_name の間に半角スペースを入れて full_name を作成する場合。

R

# SQL:
# SELECT CONCAT(first_name, " ", last_name) AS full_name FROM users

# R言語:
users %>%
  mutate(full_name = paste(first_name, last_name, sep = " "))
  # もしくは、セパレータのデフォルトがスペースなので:
  # mutate(full_name = paste(first_name, last_name))

まとめ

SQL操作Rの主な対応関数特徴
CONCAT(F1, ":", F2)paste0(F1, ":", F2)区切り文字を指定せず、引数をそのまま連結します。複雑な連結に向きます。
CONCAT(F1, " ", F2)paste(F1, F2)区切り文字としてデフォルトで半角スペースを挿入します。

この方法で、SQLの CONCAT や同様の文字列結合操作をR言語で実行できます。