2021/01/29

データ操作

計算カラム

このコンテンツでは、計算カラムについて説明していきます。データテーブル内の既存のデータ カラムに基づいて計算を行うことにより、データについての詳細情報を得ることができます。計算には論理式と数式を含めることができます。

計算カラムとは

取り込んだデータを使って計算したカラムを新たに追加して分析に使用する場合があります。

例えば、売上金額が「ドル」の場合、カラムを為替レートに応じた倍数(例:110倍)にして「円」に変換したり、「売上」と「数量」というカラムを使って平均単価を算出できます。

このように、既存のデータを利用して新たなカラムを追加する場合には、「計算カラム」の機能を使用します。計算カラムでは、テキスト処理や集計処理、数学、統計、論理計算の関数を使用できます。これらの関数を組み合わせてより複雑な計算が可能です。

計算カラム使用例(緯度経度から距離を計算する)

サンプルファイルの読み込み

本コンテンツで利用するサンプルファイルは、こちらからダウンロードしてください。

ダウンロードファイルは、2011年の東北地方太平洋沖地震の際の震源地、主な地域の座標、震度のデータです。

今回は、このデータを使って震源地からの距離と計測震度の関係性をグラフにします。
しかし震源地からの距離を表すカラムがないため、計算カラムを追加していきます。
今あるlat(緯度)とlon(経度)のカラムを使い、三平方の定理によって震源地からの距離を算出します。

計算カラムの追加

「データ」メニューから「計算カラムを追加」を選択します。

計算カラムの挿入メニュー

「計算カラムを追加」ダイアログが開きます。ここに計算式を入力します。

・「使用可能なカラム」エリア
使用できるカラム一覧が表示されます。ここでカラムを選択し「カラムの挿入」をクリックすると、「式」にカラムが記載されます。

・「関数」エリア
使用可能な関数一覧が表示されます。ここで関数を選択すると、下のウインドウに関数のヘルプが表示されますので、使い方や記述例を学ぶことができます。「関数の挿入」ボタンで「式」に計算式が記載されます。

・「式」エリア
計算式を入力します。計算式は手入力もできますが、「使用可能なカラム」や「関数」エリアから挿入して組むことも可能です。

・「カラム名」エリア
追加されるカラム名を入力します。カラム名を指定しない場合、計算式がそのままカラム名になります。

計算式の入力

今回は、震源地からの距離を表す計算カラムを作成します。
「式」エリアに以下の式を入力してください。

Sqrt ( Power([lat] - 38.06 , 2 ) + Power([lon] - 142.52 , 2 ) )

それぞれの地域のlat(緯度)とlon(経度)から震源地のlatとlonを引き、二乗したものを足して平方根を取っている式です(三平方の定理)。
「カラム名」エリアには「選択地からの距離」と入力し、「OK」を押してください。

追加されたカラム

追加後のカラムは、テーブルにも表示されるようになります。
新規テーブルを作成して確認してみてください。

また、追加後のカラムは画面右のフィルターパネルの一番下にも表示されます。
集計結果でフィルターをかけることも可能です。

追加後のカラムは、通常のカラムと同様にグラフの軸として使用できます。
「選択地からの距離」を横軸、「測定震度」を縦軸とする散布図を作成してみましょう。

この散布図から、距離と深度はそこまで関係していないことがわかります。

作成済み計算カラムの編集

作成した計算カラムを編集する方法をご紹介します。
「震源地からの距離」カラムは、緯度経度を元に算出しているため、実際の単位である㎞に変換していきます。

作成した計算カラムの式を編集方法は様々あります。
フィルターパネルでカラム名を右クリックし「計算カラムを編集」を選択する方法や、
「分析内のデータ」フライアウトでカラムを選択し、歯車マークから「編集」を選択する方法などがあります。

「計算カラムの編集」ダイアログが表示されるため、「式」エリアを以下のように修正し「OK」を押してください。

Sqrt ( Power( ( [lat] - 38.06 ) / 0.0111 , 2 ) + Power( ( [lon] - 142.52 ) / 0.0091 ,2) )

再集計され、グラフの横軸が㎞換算されました。

集計関数の使用

次に、平均値などの集計関数を使ったデータの集計や、if文を使ったデータを絞り込みを行っていきます。

先ほどの計算式では、lat(緯度)を38.06として計算しました。表示上は2ケタですが、実際に保持されている値は有効桁数が多く誤差が生じています。
再度計算カラムを以下のように編集し、「震源地」の値を持ってきましょう。

Sqrt ( Power(([lat] - avg ( if ( [location] = '震源地' , [lat] , null ) ) ) / 0.0111,2) + Power(( ([lon] - avg ( if ( [location] = '震源地' , [lon] , null ) ) ) ) / 0.0091,2) )

Avgを使用して平均の計算をしています。
Avg( lat ) と計算すると全データの平均が算出されるため、if文でlocationが震源地のデータだけを有効にしています。

このように、集計演算を使用して全体のデータを集計したり、if文で選択範囲のデータを絞り込むことができます。

関数一覧

計算カラムでは、関数を組み合わせることで様々な集計結果が得られます。
本記事では一例を紹介しましたが、以下に使用頻度が高いものをご紹介します。
また、関数一覧についてはこちら をご参照ください。

テキスト関数

文字列を連結します。
Left 文字列を左から○文字切り取ります。
Right 文字列を右から○文字切り取ります。
Mid 文字列を×文字目から○文字切り取ります。
Find 文字列中から文字を検索し、その位置を返します。主にmidやright,left関数と使用します。
Len 文字列の長さを返します。主にfindやmidと使用します。
RxReplace 文字列を正規表現で処理します。
Substitute 文字列の単語を置換します。
Trim 文字列の先頭・末尾の空白を削除します。
UniqueConcatinate 文字列の固有値を連結します。

数学関数

Ceiling 引数を最も近い自然数に切り上げます。
Floor 引数を最も近い自然数に切り下げます。
Mod 除算した余りを計算します。
Product 引数の積を計算します。

集計関数

Avg 平均値を計算します。
Count カラム内の空でない値の数を計算します。
Max 最大値を計算します。
Median 中央値を計算します。
Min 最小値を計算します。
StdDev 標準偏差を計算します。
UniqueCount カラム内の空でない固有値の数を計算します。

論理関数

Case 複数の条件分岐をします。
If 条件分岐をします。

日付関数

DataAdd 間隔を日付や時刻、日付時刻に追加します。
DataDiff 日付時刻カラムの間の差異を計算します。
DataTimeNow 現在時刻を返します。
DataPart 日付や時刻、日付時刻の指定部分を返します。

Rank関数

Rank,DenseRank ランキング順位を返します。主に順位付けやソート順序に使用します。

【データ操作】最新の記事

【データ操作】記事一覧に戻る
全記事一覧に戻る