2024/04/08
アドバンスド
※本記事は3/28開催セミナー「TIBCO Spotfire活用セミナー〜 実務において役立つ関数〜」で紹介した内容です。
このコンテンツでは、セミナー内で紹介した関数をまとめています。過去の記事「実務において役立つ関数①」、「実務において役立つ関数②」で紹介済みの関数は割愛しております。
利用したバージョンは、Spotfire Analyst 14.0です。ご利用環境によって、一部画面構成が異なる場合がありますので、ご了承ください。
本コンテンツでは、データの前処理・可視化において頻出の「関数」をご紹介いたします。Spotfireには、計算カラムやカスタム演算式の中で利用できる「関数」が多数用意されています。例えば、AvgやMin・Maxなどの統計関数、文字列操作で使えるテキスト関数などです。これらの関数を活用することで、新しいカラムの作成や複雑な集計が可能となるため、Spotfireで分析する上で欠かせない機能になっています。
本コンテンツで紹介する関数一覧は下記の通りです。
カテゴリ | 関数 | 説明 |
---|---|---|
欠損値の補完 | Is Null | 値が欠損値かどうかを判断 |
SN | 欠損値を任意の値に置換 | |
日時処理 | ParsedateTime | 文字列の日付時刻情報をDateTime型に変換 |
文字列の操作 | Split | 指定した区切り文字で文字列データを分割 |
Trim | 文字列の先頭と末尾の空白文字を削除 | |
Substitute | 文字列を任意の値で置換 | |
Find | 文字列から任意の文字を検索 | |
その他 | RowID | ローに一意の識別子(番号)を付与 |
Lag/Lead | 対象カラムの前後の値を参照 |
本コンテンツでは、各関数の説明・表記方法を下記に統一しています。
引数を示す際は、式の左から順に「Arg1」、「Arg2」のように表記します。
例:Sum([Arg1], [Arg2])
欠損値(NULL)を任意の値に置換する関数を紹介します。
欠損値かどうかを判別するための関数で、IfまたはCase文の中で用いられます。
If( [Arg1] Is Null, Arg2, Arg3 )
Arg1がNULLだった場合、Arg2が返され、それ以外はArg3が返されます。
If( [年代] Is Null, “NA”, [年代] )
欠損していたデータには「NA」が返され、欠損していないデータにはカラム「年代」の値が返されました。
欠損値を任意の値に置換する関数です。
SN( Arg1 , Arg2 )
Arg1の欠損値をArg2で置換します。
SN( [年代] , “NA” )
欠損していたデータに「NA」が返されました。
日時に関するデータを処理する関数を紹介します。
日付時刻情報を文字列データとして保持している際に、日付時刻情報を文字列データから抽出し、DateTime型に変換します。
ParseDateTime(Arg1, Arg2)
※「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(Arg1, Arg2, Arg3)
Split( [メールアドレス] , “@” , 2 )
「メールアドレス」というカラムの文字列を、「@」で区切り、Arg3で「2」を指定したため後半のかたまりを出力しました。
文字列の先頭と末尾の空白文字を削除します。文字列に空白が存在すると、別のデータとして認識されてしまいます。
Trim(Arg1)
Trim( [カテゴリ] )
「カテゴリ」の「A」と「C」の前に存在していた空白が削除されました。
文字列を任意の値で置換します。表記ゆれを統一する場合等に有効です。
Substitute( Arg1 , Arg2 , Arg3 )
Substitute( [装置] , “Device” , “device” )
文字列から任意の文字を検索し、その位置を返します。
また、文字の位置を取得するだけでなく、その文字の存在の有無を把握できます。
Find( Arg1 , Arg2 , Arg3 )
※Arg3は任意指定です。指定しない場合は、Arg1が出現する最初の文字を出力します。
ローごとに一意の識別子(番号)を返します。
RowID( )
RowID( )
すべてのローに一意な番号を付与できました。
対象カラムの前後の値を参照できます。
前のデータとの時間差を取得したい場合に有効です。例えば、ある事象の前回発生から今回発生までのインターバルなどです。
Lag( Arg1 , Arg2 ) / Lead( Arg1 , Arg2 )
※Lagは下方、Leadは上方にシフト
Lagでは下方に、Leadでは上方にローをシフトさせることが出来ました。
【アドバンスド】最新の記事