Alteryx Inspire 2017 : 【レポート】R言語を使ったマクロ開発 #alteryx17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、小澤です。

『Alteryx inspire 2017』が2017年6月5日(月)〜6月7日(水)、アメリカのラスベガス ARIA HOTELにて3日間開催されています。 当エントリでは、プロダクトトレーニングの、「Introduction to Predictive Analytics」をレポートしたいと思います。

目次

セッションの概要

セッション概要は以下の内容となります。

トレーニングパス: Advanced Analytics(高度な分析) 講師: Bridget Toomey セッション概要: Alteryx has so many great tools for you to use, but you are missing just THAT ONE type of analysis that your organization does with R. In this class, learn how to implement your R code into an Alteryx tool that you can use again and again. (Alteryxには貴重なツールがたくさんありますが、あなたの組織がRで行っている分析の1つだけが欠けています。このクラスでは、Rコードを繰り返し使用できるAlteryxツールに実装する方法を学びます 。)

Tracksより引用

セッションレポート

2017-06-07 16.56.52

トレーニングでやる内容としては以下のようになっています。

  • データをAlteryxとRの間でやりとりする
  • Rのオブジェクトをやりとりする
  • Rのモデルを抽出してAlteryxに渡す
  • Alteryxにメッセージを送る
  • AlteryxのInterfaceツールで設定した値をRから読み込む
  • Rで作成した図をAlteryxから利用する
  • Alteryxの外部でRのコードを実装して実行する

データをAlteryxとRの間でやりとりする

最初に、もっとも基本的な部分としてalteryxのRツールの入出力でやり取りされるデータの扱いについてとなります。

  • alteryxのデータはRのデータフレームとして取得することが可能
  • 文字列のフィールドはRではFactor型として扱われる
  • Rからはデータフレームまたは長さの等しいリストとして出力可能

となります。

  • 入力は、read.Alteryx関数でコネクタの番号(#1, #2, ...)を指定
  • 出力は、write.Alteryx関数で出力の番号(1, 2, ..., 5)を指定

となります。 出力は最大5つまでとなります。

Rのオブジェクトをやりとりする

続いて、文字列, 数値といったもの以外のRのオブジェクトを扱う方法になります。

  • Rのオブジェクトを扱うにはシリアライズしてやりとりする必要がある
  • 多くのAlteryxのRを使ったモデリングを行うツールはNameとObjectという2つのフィールドを持ち、Objectにシリアライズされたデータを持ちます
  • Alteryx上ではオブジェクトはBLOBとして扱われているが、Rツールの入力として扱うと文字列になってしまう。
  • unserializeObject関数を呼び出すことで変換可能

とのことです。

Alteryxにメッセージを送る

AlteryxMessageという関数で、ワークフローのresultに出力するメッセージを送ることができます。

メッセージはiType引数で、3種類から選択できます

  • Information(黒字での表示)
  • Warning(黄色での表示)
  • Error(赤での表示)

一般的なプログラム言語で言うところのログ出力のレベルのようなものですね。

また、エラーメッセージを出力したからといってそこで処理が終了するわけではありません。 エラーとともに処理を終了させたい場合は、stop.Alteryx関数を利用します。

インターフェースツールから設定を読み込む

Rツールの利用にかかわらず、マクロを利用する場合、設定項目を設けることはよくあると思います。 ワークフロー実行時に設定された項目をRツールから読み込むには、"%Question.%"というものを利用します。 ""にはインターフェースツールに設定した名前が入ります。

トレーニング中では解説されませんでいたが、alteryxでツールに名前をつけるには、 ワークフローの設定にある「Workflow」タブの「Constants」から行います。

スクリーンショット 2017-06-14 17.35.10

例えば、インターフェースツールである、Numeric Up Downをマクロ上に配置して、この設定から「num_size」のような名前をつけた場合、Rツールからは"%Question.num_size%"として実行時に設定された値を取得することができます。

グラフの出力

続いて、Rで作成したグラフをAlteryxに出力方法となります。

こちらは

  • AlteryxGraph関数を呼び出す
  • Rでグラフの描画を行う
  • invisible(dev.off)で描画を終了する

となります。

AlteryxGraph関数ではデータの出力と同様、出力先の番号を指定します。

外部ツールでAlteryx用のRを記述する

最後に、alteryxのRツールで利用するためのコードを外部ツールで記述すための方法が紹介されました。 講師の方も「RStudio使いたいでしょ?」と言っており、私としてもこれには賛同ですw

library(AlteryxPredictive)で必要なライブラリをロードすると、 以下の関数が利用可能になります

  • read.Alteryx2
  • write.Alteryx2
  • AlteryxGraph2

「2」が付いている点に注意してください。 使い方は2が付いていないものと同様です。 このコードはRでそのまま実行できますし、alteryxのRツールでもそのまま実行できます。

RStudioでAlteryxGraph2を実行すると以下のようにグラフが表示されます。

2017-06-07 18.55.08

終わりに

本トレーニングではRツールを使ったマクロの作り方について学ぶことができました。 alteryxのヘルプには、Rツールについても詳しく書いてあるのですが、それでもその場で実際に体験することで「こんなことができるのか!」という発見も多くあり、とても内容の濃いトレーニングとなっていました。