4.演算する(算術演算子)-SQL経験者のためのR入門

SQLの SELECT FIELD1 + 1 FROM TABLE のように、算術演算子(四則演算など)を使って計算した結果を表示する方法をR言語で説明します。


➕ 算術演算子を使った計算 (SELECT FIELD1 + 1)

SQLで算術演算子を使って計算した結果を新しい列として表示する操作は、R言語では主に dplyr パッケージの mutate() 関数を使って行います。

1. mutate() 関数(計算結果の新しい列の作成)

dplyr パッケージの mutate() 関数は、既存の列を使って新しい列を作成したり、既存の列を上書きしたりするために使用されます。

SQLR言語 (dplyr)説明
SELECT FIELD1 + 1 AS NewField FROM TABLETABLE %>% mutate(NewField = FIELD1 + 1)FIELD1 の値に $1$ を足した結果を NewField という新しい列として追加します。

コード例

データフレーム salesprice 列を 10%増額した結果を new_price という列として計算する場合。

R

# SQL:
# SELECT price * 1.10 AS new_price FROM sales

# R言語:
library(dplyr)

sales %>%
  mutate(new_price = price * 1.10)

ポイント: mutate() を使うと、元のデータフレームのすべての列を保持したまま、計算結果の列が追加されます。


2. 算術演算子の対応

R言語でデータフレームの列に対して使用できる主な算術演算子は、SQLとほぼ同じです。Rでは、列全体に対して一度に計算を実行できます(ベクトル化された操作)。

演算SQLR言語説明
加算++例: FIELD1 + FIELD2
減算--例: FIELD1 - 100
乗算**例: FIELD1 * 0.8
除算//例: FIELD1 / 2
累乗POWER(F, P)^ または **例: FIELD1 ^ 2 (FIELD1の2乗)
剰余%%%例: FIELD1 %% 2 (FIELD1を2で割った余り)

応用コード例

items データフレームの quantityunit_cost を掛け合わせて total_cost を計算し、unit_cost が $50$ より大きいレコードのみを表示する場合。

R

# SQLの意図:
# SELECT *, quantity * unit_cost AS total_cost
# FROM items
# WHERE unit_cost > 50

# R言語:
library(dplyr)

items %>%
  mutate(total_cost = quantity * unit_cost) %>% # 1. total_costを計算
  filter(unit_cost > 50)                       # 2. フィルタリングを実行

これで、SQLの算術演算子を使った計算をR言語で実行できます。