AlteryxでRのスクリプトを利用する際に便利な機能

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

こんにちは、小澤です。

Alteryxでは、Rツールを使うことで任意のRスクリプトを記述することが可能です。 記述することが可能とは言っても、以下のような課題もあります。

  • Rでしか実現できない部分を除いた前後の処理をAlteryxのワークフローにしたい
  • Rの記述はRStudioなど便利で使い慣れたものを使いたい

そこで今回は、それらを実現するためにAlteryxのライブラリとして用意されているRの関数を紹介したいと思います。

Rツールの簡単な復習と利用シーン

Rツールの復習

Rツールの基本的な使い方に関しては、以下の記事で紹介済みです。

まずはこの内容のうち、入出力部分を簡単に復習しておきましょう。 RツールはAlteryxの他のツールと同様、ワークフロー上に配置されたツールから入力を受け取って出力を渡します。

これを実行する関数はそれぞれ、

  • 入力 : read.Alteryx
  • 出力 : write.Alteryx
  • 画像出力 : AlteryxGraph

となっています。

利用シーン

さて、このRツールですが、入出力ともにオプショナルとなっているため、必須ではありません。 Rの機能はフルで使えるので、Alteryxの他のツールから入力を受け取らずともread.csvなどの関数を使って直接取得することも可能です。

そうなってくると、ワークフロー上にRツールのみを1つ配置してそれで全ての処理を実装するということも可能なのですが、 せっかくAlteryxを使っているのであれば、基本的にはAlteryxのワークフローで実装してどうしてもRのライブラリを使った処理が必要な部分のみRツールで実装するなどしたくなります。

そのため、既存のRスクリプトをAlteryxのフローに組み込むなどと言ったシーンを考えるとRスクリプト中の前処理などはAlteryx側に追い出してやるなどしたくなります。

このときに、難しいがAlteryx側で実装した部分とRで実装した部分との連携となります。 Rを使うに際して、Rツールはあくまでもスクリプトを記述可能な部分というものであって、RStudioなどのIDEを利用した強力な機能はありません。 そのため、Rを使う側としては全てRで完結してくれた方が楽という側面もありました。

AlteryxとRの連携を楽にする関数

これを便利に行える関数としてAlteryxでは以下の関数が用意されています。

  • read.Alteryx2
  • write.Alteryx2
  • AlteryxGraph2

これらの基本的な使い方は、「2」がつかないものとほぼ同等になります。 実際の使い方を見ていきましょう。

ライブラリを使えるようにする

これらの関数を使うにはAlteryxのライブラリを読み込む必要があります。 Alteryxでは、内包されたRを利用するので、実行するRは

<Alteryxのインストールフォルダ>\R-x.y.z\bin\R.exe

になります(x.y.zにはRのバージョンが入ります)。 Rを起動して、以下のようにライブラリを読み込みます。

library(AlteryxPredictive)

これでAlteryx上のRツールで利用可能な各種関数が使えるようになります。

なお、RStudioから利用する場合は、メニューの Tool > Global Options を選択したのち表示される設定画面で、 General > R version でRのパスに <Alteryxのインストールフォルダ>\R-x.y.z を指定します。

read.Alteryx2

read.Alteryx2はAlteryxのRツールでのread.Alteryxと同等のものになります。 基本的な使い方は、read.Alteryxと同じですが、引数として"default"というものが追加されています。 使い方は以下のようになります。

data <- ... # 何らかのデータ読み込み
data.processed <- ... # dataに対するしょり
df <- read.Alteryx2("#1", default=data.processed)

これをRのプログラムとしてそのまま実行すると、defaultで指定した値がdfに入ります。 一方、このコードをそのままAlteryxのRツールにコピペしてワークフローを作成すると、#1の入力データが読み込まれます。 read.Alteryx2は「2」を削除することなくそのままAlteryxのRツールで利用可能です。

このようにすることで、以下のような対応が可能になります。

  • プログラムの作成時は全てRで書いて、Alteryxのワークフローに落とし込む際にdata.processedを作成するまと処理を分ける
  • data.processedを作成するワークフローを先に作成しておき、Rからはそれを読み込んで使う

これによって、Rツールを使うようなワークフローを作成する際にそれぞれの役割分担が適切に行えるようになることがわかります。

write.Alteryx2とAlteryxGraph2

この2つについては、「2」がつかないものと同じになります。 Rのスクリプト中に記載されていればデータフレームや図としてそのまま出力され、 AlteryxのRツールから利用することでツールの出力となります。

おわりに

今回は、RとAlteryxのRツールを連携させる上で便利な関数を紹介しました。

既存のRで作成された資産を活用したい方はぜひお試しください。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400