WeeklyAlteryxTips#26 Alteryxでレポート内のテーブルから情報を取得する

Alteryx

重要:2024/3/30 本記事、元のタイトルは「Alteryxで主成分分析の結果を別のデータに適用する」ですが、内容に誤りがありましたので、訂正してお詫び申し上げます。

元々の記事では、「コンポーネントの読み込み」から値を取得し、計算式で別のデータに主成分分析の結果を適用するというものでしたが、「コンポーネントの読み込み」は「Component Loadings」という内容にあたり、「Rotation」ではないため再計算ができません。そのため、本記事はあくまでAlteryxのレポートからデータを抽出するという意味合いでご利用ください。(全面的に書き直しています)


今回は、Alteryxのレポートから特定のテーブルの項目を抽出してみたいと思います。

Alteryxのレポートとは?

主成分分析ツールの結果は、O出力とR出力がありますが、O出力にはこの係数(主成分負荷量)は出力されていません。R出力を見てみると、閲覧ツールで見ると上のようなテーブルでのレポートを見ることが出来ますが、実際のレコードとしては、以下のようになっています。

欲しいデータは、この5レコード目のComponentLoadingsのReportフィールドの中に入っています。

これをダブルクリックして見てみましょう。

このように、HTML形式でどうやら書かれているようです。つまり、これをがんばってパースすればほしいデータが得られそうです。

主成分分析のレポートからテーブル部分の値を取り出す

もう少しAlteryxのテーブル構造を見てみましょう。基本的には「datatable」というタグの中にこのテーブルが収められています。そして、一行目がカラムでそれ以外がデータ行といった形になっており、カラムは「tr class=”headerRow”」のタグで見分けることができます。各カラム名は「td」タグで囲われています。データ行は「dbody」タグで見分けることができます。データ行自体はさらに「dr」タグで各行が囲われています。各値は「cell」タグの中に収められています。つまり、以下のようになります(いくつかのタグは省略しています)。

<datatable>
<tr class="headerRow"><td>Column1</td><td>Column2</td></tr>
<dbody>
<dr><cell>Datavalue1-1</cell><cell>Datavalue2-1</cell></dr>
<dr><cell>Datavalue1-2</cell><cell>Datavalue2-2</cell></dr>
<dbody>
</datatable>

赤:カラム、青:データ

上の情報を元にがんばってパースしていくと、以下のようなワークフローでパース可能です。

ワークフローの細かい詳細説明は省きます(サンプルワークフローでご確認ください)が、以下のような結果が得られます。

といった形でデータを取り出すことができました。

サンプルワークフロー

コメント

タイトルとURLをコピーしました