2024/04/08

アドバンスド

実務において役立つ関数③

※本記事は3/28開催セミナー「TIBCO Spotfire活用セミナー〜 実務において役立つ関数〜」で紹介した内容です。

このコンテンツでは、セミナー内で紹介した関数をまとめています。過去の記事「実務において役立つ関数①」、「実務において役立つ関数②」で紹介済みの関数は割愛しております。
利用したバージョンは、Spotfire Analyst 14.0です。ご利用環境によって、一部画面構成が異なる場合がありますので、ご了承ください。

探索的分析/原因分析の領域で
高い評価と実績
TIBCO Spotfire

TIBCO Spotfire®は分析に必要な機能を単一製品でカバーするビジュアルアナリティクスツールです。

はじめに

本コンテンツでは、データの前処理・可視化において頻出の「関数」をご紹介いたします。Spotfireには、計算カラムやカスタム演算式の中で利用できる「関数」が多数用意されています。例えば、AvgやMin・Maxなどの統計関数、文字列操作で使えるテキスト関数などです。これらの関数を活用することで、新しいカラムの作成や複雑な集計が可能となるため、Spotfireで分析する上で欠かせない機能になっています。
本コンテンツで紹介する関数一覧は下記の通りです。

カテゴリ 関数 説明
欠損値の補完 Is Null 値が欠損値かどうかを判断
SN 欠損値を任意の値に置換
日時処理 ParsedateTime 文字列の日付時刻情報をDateTime型に変換
文字列の操作 Split 指定した区切り文字で文字列データを分割
Trim 文字列の先頭と末尾の空白文字を削除
Substitute 文字列を任意の値で置換
Find 文字列から任意の文字を検索
その他 RowID ローに一意の識別子(番号)を付与
Lag/Lead 対象カラムの前後の値を参照
表の続き →

各関数の紹介

本コンテンツでは、各関数の説明・表記方法を下記に統一しています。
引数を示す際は、式の左から順に「Arg1」、「Arg2」のように表記します。
例:Sum([Arg1], [Arg2])

欠損値の補完

欠損値(NULL)を任意の値に置換する関数を紹介します。

Is Null

欠損値かどうかを判別するための関数で、IfまたはCase文の中で用いられます。

使用方法

If( [Arg1] Is Null, Arg2, Arg3 )
Arg1がNULLだった場合、Arg2が返され、それ以外はArg3が返されます。

使用例

If( [年代] Is Null, “NA”, [年代] )

欠損していたデータには「NA」が返され、欠損していないデータにはカラム「年代」の値が返されました。

SN

欠損値を任意の値に置換する関数です。

使用方法

SN( Arg1 , Arg2 )

  • Arg1:欠損値が存在するカラムまたは値
  • Arg2:置換後の値

Arg1の欠損値をArg2で置換します。

使用例

SN( [年代] , “NA” )

欠損していたデータに「NA」が返されました。

日時処理

日時に関するデータを処理する関数を紹介します。

ParsedateTime

日付時刻情報を文字列データとして保持している際に、日付時刻情報を文字列データから抽出し、DateTime型に変換します。

使用方法

ParseDateTime(Arg1, Arg2)

  • Arg1:日付/時刻情報を含む文字列
  • Arg2:Arg1に合わせた書式の文字列(例:yyyy, MM, dd etc.)

※「ParseDateTime」で指定可能な書式の文字列は以下です。

文字 説明
yy 年を「0 から 99」までの2桁の数値で返します。
yyyy 年を4桁の数値で返します。
M 月を、1から12までの1桁または2桁の数値で返します。
MM 月を、1から12までの2桁の数値で返します。
d 日付を、1から31までの1桁または2桁の数値で返します。
dd 日付を、1から31までの2桁の数値で返します。
h 時間を、12時間制を使用して、1桁または2桁の数値で返します。
hh 時間を、12時間制を使用して、2桁の数値で返します。
H 時間を、24時間制を使用して、1桁または2桁の数値で返します。
HH 時間を、24時間制を使用して、2桁の数値で返します。
m 分を、1桁または2桁の数値で返します。
mm 分を、2桁の数値で返します。
s 秒を、1桁または2桁の数値で返します。
ss 秒を、2桁の数値で返します。
f 10分の1秒を返します。
ff 100分の1秒を返します。
fff ミリ秒を返します。
tt AM/PM 指定子を返します。
使用例

ParseDateTime( [日時] , “yyyy年M月d日HH時” )

文字列の操作

文字列データを処理する関数を紹介します。

Split

指定した区切り文字で文字列データを分割します。

使用方法

Split(Arg1, Arg2, Arg3)

  • Arg1:分割元のカラム
  • Arg2:区切り記号
  • Arg3:分割後、前から何個目のかたまりを結果として出力するか
使用例

Split( [メールアドレス] , “@” , 2 )

「メールアドレス」というカラムの文字列を、「@」で区切り、Arg3で「2」を指定したため後半のかたまりを出力しました。

Trim

文字列の先頭と末尾の空白文字を削除します。文字列に空白が存在すると、別のデータとして認識されてしまいます。

使用方法

Trim(Arg1)

  • Arg1:空白を持つカラム
使用例

Trim( [カテゴリ] )

「カテゴリ」の「A」と「C」の前に存在していた空白が削除されました。

Substitute

文字列を任意の値で置換します。表記ゆれを統一する場合等に有効です。

使用方法

Substitute( Arg1 , Arg2 , Arg3 )

  • Arg1:置換対象の文字列カラム
  • Arg2:Arg1のカラムの中でどの文字を置換するか指定
  • Arg3:Arg2で指定された文字を何で置換するか
使用例

Substitute( [装置] , “Device” , “device” )

Find

文字列から任意の文字を検索し、その位置を返します。
また、文字の位置を取得するだけでなく、その文字の存在の有無を把握できます。

使用方法

Find( Arg1 , Arg2 , Arg3 )

  • Arg1:検索する文字列
  • Arg2:Arg1の検索対象の文字列
  • Arg3:Arg1の何番目の結果を出力するか指定

※Arg3は任意指定です。指定しない場合は、Arg1が出現する最初の文字を出力します。

使用例

その他

RowID

ローごとに一意の識別子(番号)を返します。

使用方法

RowID( )

使用例

RowID( )

すべてのローに一意な番号を付与できました。

Lag / Lead

対象カラムの前後の値を参照できます。
前のデータとの時間差を取得したい場合に有効です。例えば、ある事象の前回発生から今回発生までのインターバルなどです。

使用方法

Lag( Arg1 , Arg2 ) / Lead( Arg1 , Arg2 )

  • Arg1:シフト対象のカラム
  • Arg2:ステップ数を指定します。デフォルト値は1です。

※Lagは下方、Leadは上方にシフト

使用例

Lagでは下方に、Leadでは上方にローをシフトさせることが出来ました。

探索的分析/原因分析の領域で
高い評価と実績
TIBCO Spotfire

TIBCO Spotfire®は分析に必要な機能を単一製品でカバーするビジュアルアナリティクスツールです。

【アドバンスド】記事一覧に戻る
全記事一覧に戻る