数値列同士の演算
数値の列どうしを計算して、結果を列にします。売上から原価を引いて利益を出す、単価 × 数量で金額を出す、といった使い方をします。
計算結果の端数を落としたいときは、このあとに数値列の丸めをつないでください。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ(新規列に挿入なら 1 列、右端に増えます) |
Spark エンジンでも動きます。
設定項目
「演算式の作成方法を選択」で選んだ作り方によって、以降に出る欄が変わります。
- 結果の挿入先を設定
- 新規列に挿入(既定)か既存列に上書き。
- 新規列名を入力必須
- 「新規列に挿入」のときに出ます。計算結果を入れる列の名前。
- 列を選択必須
- 「既存列に上書き」のときに出ます。計算結果の入り先で、計算に使う列ではありません。数値の列だけ選べます。
- 演算式の作成方法を選択
- 簡易設定(既定)/ 簡易一括設定 / 式を記述。
- 固定数値を演算する
- 簡易設定のときに出ます。既定は off です。on にすると、その項に列ではなく決まった数値を使います。
- 演算対象列を選択必須
- 簡易設定で「固定数値を演算する」が off のときに出ます。数値の列だけ選べます。
- 数値を入力必須
- 簡易設定で「固定数値を演算する」が on のときに出ます。小数も入れられます。
- 演算子と項
- 簡易設定のときに出ます。2 つ目以降の項を並べる場所です。1 行につき「演算子を選択」と、列か固定数値を 1 つ決めます。行は何行でも足せます。
- 演算対象列を選択(簡易一括設定)
- 簡易一括設定のときに出ます。数値の列だけ選べます。複数選べます。1 列だけ選んだときは、その列の値がそのまま結果になります。
- 演算子を選択(簡易一括設定)
- 簡易一括設定のときに出ます。
+か×のどちらか。選んだ列を、全部この演算子でつなぎます。初めは何も選ばれていません。選ばずに実行すると「演算子を選択してください。」のエラーになります。 - 式を記述
- 「式を記述」のときに出ます。式を自分で書く欄です。書き方は式を記述を見てください。
- 欠損値を置換して演算する
- 空欄をここに入れた値に置き換えてから計算します。入れないと、空欄を含む行の結果は空欄になります。どの作り方でも出ます。
3 つの作り方
| 見るところ | 簡易設定 | 簡易一括設定 | 式を記述 |
|---|---|---|---|
| 作れる式 | 項を並べて演算子でつなぐ | 選んだ列を全部足すか全部掛ける | 自由 |
| 列の数 | 1 つずつ指定 | まとめて選べる | 式の中で指定 |
| 固定の数値 | 使える | 使えない | 使える |
| かっこ | 使えない | 使えない | 使える |
| 変数 | 使えない | 使えない | 使える |
| 向いている場面 | 売上 − 原価 | 月別 12 列の合計 | かっこを使う計算 |
簡易設定
最初の項を決め、演算子と次の項を足していきます。項は列か固定の数値です。
使える演算子は 7 つです。
| 画面の表示 | 意味 |
|---|---|
+ | 足す |
- | 引く |
× | 掛ける |
÷ | 割る |
商 | 割った答えの整数部分(端数は切り捨て) |
余り | 割った余り |
累乗 | 左の値を右の値の回数だけ掛ける |
計算の順番は算数と同じです。 累乗 がいちばん先、次に × ÷ 商 余り、最後に + - です。同じ強さの演算子は左から順に計算します。売上 + 単価 × 数量 と並べると、単価 × 数量 を先に計算してから 売上 を足します。
累乗 だけは右から計算されます。 2 累乗 3 累乗 2 は 2 の (3 の 2 乗) 乗 で 512 です((2 の 3 乗) の 2 乗 の 64 ではありません)。累乗 を 2 回以上並べるときは「式を記述」でかっこを付けてください。
簡易一括設定
複数の列をまとめて選び、全部を + でつなぐか、全部を × でつなぐかを選びます。月別の 12 列を合計する、といった使い方です。演算子は初めは選ばれていないので、+ のときも選び直してください。
固定の数値は混ぜられません。列と数値を組み合わせたいときは簡易設定か「式を記述」を使ってください。
式を記述
式を自分で書きます。かっこが使えるので、計算の順番を自由に決められます。
列は {} で囲みます。 {売上} のように書いてください。囲まずに列名だけ書くと読み取れません。
変数は $ に続けて名前を書きます。 $tax_rate のように書くと、実行するときにその変数の値に置き換わります。使えるのは、その分析プロジェクトのローカル変数と、そこにインポートした共通変数です。詳しくは変数利用方法(分析プロジェクト)を見てください。
式には列か変数を少なくとも 1 つ入れてください。 1 + 2 のように数字だけの式はエラーになります。
式で使える演算子と関数
演算子
| 書き方 | 意味 |
|---|---|
+ | 足す |
- | 引く |
* | 掛ける |
/ | 割る |
// | 割った答えの整数部分(端数は切り捨て) |
% | 割った余り |
** | 累乗 |
( ) | 先に計算するところを囲む |
関数
| 書き方 | 意味 |
|---|---|
abs( ) | 絶対値(マイナスを取る) |
log( ) | 自然対数 |
log10( ) | 常用対数 |
書き方の例
( {売上} / 1.1 ) * {割引率}abs( {目標} - {実績} ){男性人数} / ( {男性人数} + {女性人数} ){売上} * $tax_rate$tax_rate + {売上}
行の先頭に # を書くと、その行は計算に使われません。覚え書きを残せます。
空欄の扱い
空欄を含む行の結果は空欄になります。 0 として計算したいときは「欠損値を置換して演算する」に 0 を入れてください。置き換わるのは、その式で使っている列だけです。
0 で割ったとき
0 で割ってもエラーにはなりません。 ただし、その行の結果は意味のある数値になりません。
| 式 | 結果 |
|---|---|
| 0 以外の値 ÷ 0 | inf(どんな数より大きいことを表す値)が入ります |
0 以外の値 商 0 | inf が入ります |
0 ÷ 0、0 商 0 | 空欄になります |
余り 0(左がいくつでも) | 空欄になります |
inf が入った列は、そのあとの集計やグラフでそのままでは使えません。分母が 0 になりうる計算では、先に条件に応じて値を列に挿入で分母を調整するか、条件で行をフィルタで 0 の行を外してください。
エラーと対処
どのエラーも、設定を直してからノードを実行し直せば先に進めます。
数値でない列を指定した
計算に使う列に数値以外の列が入っているとき。列を選んだあとで前の処理が変わり、型が数値でなくなったときにも出ます。
数値列同士の演算には数値型しか選択できません。
直し方 — 列の型変更で数値にしてください。
式にない列名を書いた
「式を記述」で、存在しない列名を書いたとき。
記述された列名のうち、
{{col_name}}が存在しません。
{{col_name}} には、見つからなかった列名が入ります。
直し方 — 列名を確かめてください。前の処理で名前が変わっていることがあります。
式の書き方が間違っている
かっこの対応が合わない、演算子が続いている、1 + 2 のように列も変数も入っていない、といったとき。
構文が不正です。記述した式が正しいか確認してください。
直し方 — かっこの数、演算子の前後に項があるか、列を {} で囲んでいるかを確かめてください。
演算子を選んでいない
簡易設定または簡易一括設定で、演算子が空のとき。簡易一括設定は初めから何も選ばれていないので、触らずに実行するとこのエラーになります。
演算子を選択してください。
直し方 — 演算子を選ぶか、その行を削除してください。
設定が空になっている
ノードに設定が 1 つも入っていないとき。
設定が空になっているノードがあります。設定をご確認ください。突然空になった場合はnehanへご連絡ください。
直し方 — 設定し直してください。繰り返す場合は問い合わせてください。
変数が設定されていない
式の中で $ 付きの変数を使っていて、その名前の変数がないとき。
変数:
{{val}}が設定されていないため処理を中断しました。
{{val}} には、見つからなかった変数名が入ります。
直し方 — 名前の打ち間違いを直すか、その名前の変数を作ってください。共通変数を使っているつもりなら、その分析プロジェクトにインポートされているかを確かめてください。
新規列名が既にある
「新規列名を入力」に入れた名前が、入力データに既にあるとき。
新規列名(
{{new_col}})が既存の列名と重複しています。
{{new_col}} には、重複した列名が入ります。
直し方 — 別の列名を入れるか、「既存列に上書き」に切り替えてください。
列を選ばずに実行した
演算対象列を選択や列を選択が空のまま実行したときに出ます。前の処理で列名が変わり、選んでいた列が入力データからなくなったときにも同じメッセージです。
対象の列が選択されていません。
直し方 — 列を選び直してください。
選んだ列が見つからない
演算対象列を選択で指定した列が入力データにないとき、またはどの条件にも 1 列も当たらないとき。前の処理で列名が変わった場合にも出ます。
対象の列が存在しません。
直し方 — 列を選び直してください。列名が変わりうるデータでは、名前に頼らない選び方(型で選ぶ・前方一致)に変えると壊れにくくなります。
よく使う例
1. 利益を出す
お題 — 売上から原価を引きたい
入力
| 商品 | 売上 | 原価 |
|---|---|---|
| りんご | 1000 | 600 |
| みかん | 800 | 500 |
設定 — 新規列名 利益、簡易設定で 売上 → - → 原価
出力
| 商品 | 売上 | 原価 | 利益 |
|---|---|---|---|
| りんご | 1000 | 600 | 400 |
| みかん | 800 | 500 | 300 |
2. 金額を出す
お題 — 単価 × 数量で金額を出したい
入力
| 商品 | 単価 | 数量 |
|---|---|---|
| りんご | 150 | 4 |
| みかん | 100 | 3 |
設定 — 新規列名 金額、簡易設定で 単価 → × → 数量
出力
| 商品 | 単価 | 数量 | 金額 |
|---|---|---|---|
| りんご | 150 | 4 | 600 |
| みかん | 100 | 3 | 300 |
3. 税込価格を出す
お題 — 価格に 1.1 を掛けたい
入力
| 商品 | 価格 |
|---|---|
| りんご | 1000 |
| みかん | 600 |
設定 — 新規列名 税込価格、簡易設定で 価格 → × →「固定数値を演算する」を on にして 1.1
出力
| 商品 | 価格 | 税込価格 |
|---|---|---|
| りんご | 1000 | 1100 |
| みかん | 600 | 660 |
4. 月別の列を合計する
お題 — 月ごとの列を足して年計を出したい
入力
| 店舗 | 1月 | 2月 | 3月 |
|---|---|---|---|
| A | 100 | 120 | 90 |
| B | 200 | 180 | 210 |
設定 — 新規列名 年計、簡易一括設定で 1月 2月 3月 を選び、演算子 +
出力
| 店舗 | 1月 | 2月 | 3月 | 年計 |
|---|---|---|---|---|
| A | 100 | 120 | 90 | 310 |
| B | 200 | 180 | 210 | 590 |
5. 空欄を 0 として合計する
お題 — 未入力の月があっても年計を出したい
入力
| 店舗 | 1月 | 2月 | 3月 |
|---|---|---|---|
| A | 100 | 90 | |
| B | 200 | 180 | 210 |
設定 — 例 4 に加えて「欠損値を置換して演算する」に 0
出力
| 店舗 | 1月 | 2月 | 3月 | 年計 |
|---|---|---|---|---|
| A | 100 | 90 | 190 | |
| B | 200 | 180 | 210 | 590 |
オプションを入れないと、A の年計は空欄になります。
6. かっこを使って利益率を出す
お題 — (売上 − 原価) ÷ 売上 で利益率を出したい
入力
| 商品 | 売上 | 原価 |
|---|---|---|
| りんご | 1000 | 600 |
| みかん | 800 | 500 |
設定 — 新規列名 利益率、「式を記述」で ( {売上} - {原価} ) / {売上}
出力
| 商品 | 売上 | 原価 | 利益率 |
|---|---|---|---|
| りんご | 1000 | 600 | 0.4 |
| みかん | 800 | 500 | 0.375 |
7. 余りで振り分ける
お題 — ID を 3 で割った余りでグループを作りたい
入力
| ID |
|---|
| 10 |
| 11 |
| 12 |
設定 — 新規列名 グループ、簡易設定で ID → 余り →「固定数値を演算する」を on にして 3
出力
| ID | グループ |
|---|---|
| 10 | 1 |
| 11 | 2 |
| 12 | 0 |
8. 変数で税率を差し替えられるようにする
お題 — 税率を式に直接書かず、あとから変えられるようにしたい
入力
| 商品 | 価格 |
|---|---|
| りんご | 1000 |
設定 — 変数 tax_rate に 1.1 を入れておき、新規列名 税込価格、「式を記述」で {価格} * $tax_rate
出力
| 商品 | 価格 | 税込価格 |
|---|---|---|
| りんご | 1000 | 1100 |
9. 差の大きさだけを見る
お題 — 目標との差を、プラスマイナスを気にせず大きさだけで見たい
入力
| 店舗 | 目標 | 実績 |
|---|---|---|
| A | 1000 | 1200 |
| B | 1000 | 700 |
設定 — 新規列名 差の大きさ、「式を記述」で abs( {目標} - {実績} )
出力
| 店舗 | 目標 | 実績 | 差の大きさ |
|---|---|---|---|
| A | 1000 | 1200 | 200 |
| B | 1000 | 700 | 300 |