関数を使用してデータをクリーニングする

Analytics の関数を使用して、データをクリーニングできます。さまざまな関数により、特定のニーズに応じて、さまざまなタイプのデータクリーニングを実行できます。

データのクリーニングが必要な理由

頻繁に、Analytics にインポートされるデータはクリーンではありません。つまり、完璧な書式または正規化が行われていません。書式設定が正しくないか、標準データではない場合、Analytics のコマンドが機能しないか、不正確な結果を返します。

データ クリーニングの仕組み

データをクリーニングするときには、実際のソースデータをクリーニングまたは修正していません。ソースデータは常に読み取り専用です。

代わりに、ソースデータを処理し、正しい書式と正規化の「仮想データ」に出力する関数にソースデータを入力します。次に、クリーニングされた仮想データを、元のソースデータではなく、Analytics のコマンドに入力します。

要点

1 つ以上の関数を使用すると、さまざまなデータ クリーニングまたはデータ準備タスクを実行し、ソースデータが一貫していない場合でも、効果的かつ正確に作業できます。データ準備はほとんどのデータ分析の基本的な事前準備タスクです。

空白スペースの削除

データの一貫しない空白スペースは不正確な結果の一般的な原因です。ALLTRIM( ) 関数を使用すると、先頭と末尾の空白スペースを削除し、正確な結果を保証します。

例:空白スペース

業者テーブルを都市で並べ替えますが、一部の都市名の先頭のスペースが不正確な並べ替えの原因です。

Vendor_City 並べ替え
[ ] [ ] [ ] [ ] Salt Lake City
[ ] [ ] Chicago
Ann Arbor
Austin
Englewood
[ ] = 空白

ALLTRIM( ) 関数を使用して、先頭のスペースを削除し、正確な並べ替えを保証します。

ALLTRIM(Vendor_City)

ALLTRIM(Vendor_City) 並べ替え
Ann Arbor
Austin
Chicago
Englewood
Salt Lake City

メモ

ALLTRIM( ) 関数を Vendor_City フィールドに適用するには、ALLTRIM( ) を使用する演算フィールドを作成します。演算フィールドは後続のチュートリアルで検討します。

不要な文字の削除

一貫しない文字または重要ではない文字は、一般的に、データ分析を阻害します。Analytics のコマンドでデータを処理する前に、異なる関数を使用して、特定の文字のみを含めるか、特定の文字または文字列を除外できます。

自分で試す

以下の関数の例をコピーして、コマンドラインに貼り付け、戻り値を検証するか、異なる入力で実験できます。

コマンドラインでは、DISPLAY とスペースを例の前に置く必要があります。コマンドラインでの実験は前のチュートリアルで説明しています。

例:不要な文字

テーブルで重複テストを実行しますが、データの書式が一貫していないため、不正確な結果になります。

たとえば、一致しない書式の Phone Number フィールドで重複コマンドを実行すると、明らかに重複している次の 2 つの電話番号が重複として報告されません。

  • (604) 555-1212
  • Tel. No: 604-555-1212

すべての重複が検出されるようにするには、重複処理を実行する前に、関数を使用してデータを標準化します。

タスク 関数の例

データ番号の正規化

INCLUDE("(604) 555-1212", "1234567890")

6045551212 を返します

INCLUDE("Tel. No: 604-555-1212", "1234567890")

6045551212 を返します

INCLUDE( ) 関数には指定された文字のみが出力に含まれます。この場合は、0 ~ 9 の数値のみです。

ヒント

含める文字のセットが小さく、除外するセットが大きい場合は、INCLUDE( ) を使用します。

住所の正規化

EXCLUDE("#1550-980 Howe St.", "#.")

1550-980 Howe St を返します

EXCLUDE("1550-980 Howe St", "#.")

1550-980 Howe St を返します

EXCLUDE( ) 関数は出力から指定された文字を除外します。この場合ハッシュ記号 (#) とピリオド (.) です。

ヒント

含める文字のセットが大きく、除外する文字のセットが小さい場合は、EXCLUDE( ) を使用します。

住所を正規化し、番地の略語を削除する

OMIT("#1550-980 Howe St.", " Street, St.,#")

1550-980 Howe を返します

OMIT("1550-980 Howe Street", " Street, St.,#")

1550-980 Howe を返します

OMIT( ) 関数は指定された文字と文字列を出力から除外します。この場合、ハッシュ記号 (#) と書式が一致しない St.Street です

ヒント

特定の文字列を除外し、文字列を構成する個別の文字を除外しない場合は、OMIT( ) を使用します。

たとえば、単位として出現する Street は除外しますが、別の単語の Stre、または t は除外しません。

次の学習ステップ

関数を使用して複数のタスクを同時に実行する方法を学習する: データを同時にクリーニングしてフィルタリングする

ACL のスクリプト作成ガイド 14.1