AlteryxでRツールから動的なグラフを出力する

AlteryxでRツールから動的なグラフを出力する

Clock Icon2019.01.22

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

こんにちは、小澤です。

AlteryxではPCXML形式を利用することで動的なグラフを生成可能です。

今回は、Rで作成した動的なグラフをこのPCXML形式にする方法を紹介したいと思います。

Rで動的なグラフを作成する

まず最初にRで動的なグラフを作成する、という部分について考えてみましょう。

Rでは標準のplot関数やggplot2などを利用してグラフの作成が行えます。 しかし、これは静的なもので作成されたグラフに対してマウスオーバーで特定の位置の値を確認したり、動的にフィルターを設定したりといったことはできません。

では、Rを使ってこういった動的なグラフを作成することは不可能なのでしょうか? 確かにR単体での仕様では実現することは難しいのですが、HTML+Javascrpitとの組み合わせによって実現可能です。 それを実現するためのパッケージが{htmlwidget}となります。 出力されるものとしてはHTMLとなり、そのうえでJavascriptを使った動的なグラフが表現されるというわけです。

このhtmlwidgetを使って動的なグラフを描画する様々なパッケージがあり、RMarkdownやShinyなどにそのまま組み込めるような形式になっています。

Alteryxから利用するには

さて、Alteryxでは、Rに依存したツールの中にも出力として動的なグラフを含むものが多くあります。

Rツールを使ってPredictiveツールのモデルなどから必要なデータを取り出して、それをPCXML形式に変換したり、Interactive Chartを利用すればできそうですね。

Interactive Chartツールは最近登場した機能です。 出力に動的なグラフを含むツールは登場以前から存在していたため、今回はこちらを利用しない方法を考えることにします。

そう考えると基本的にPCXML形式として利用可能なHTMLを自力で作ることになるわけですが、これが結構面倒ですねw

そこで登場するのが先ほどのRで動的なグラフを作る方法です。 なんと、都合よくHTML+Javascriptではありませんか!

というわけで、この方法で作成されたグラフをAlteryxで利用可能にする方法を見てみましょう。

まずは、Rツールで動的なグラフを作成します。 今回は、標準に含まれるツールのいくつかでも利用されている{dygraphs}パッケージを使ってみます。

まずはRツールで以下のように記述します。

library(dygraphs)
lungDeaths <- cbind(mdeaths, fdeaths)
d <- dygraph(lungDeaths, height = 450, width = 600) %>% dyRangeSelector()

データはRに標準で含まれるもので、1974年から1979年までのイギリスにおける気管支炎、気腫および喘息による毎月の死亡を示す3つの時系列データとなっています。 mdeathsが男性、fdeathsが女性のデータです。

今回はRに含まれるデータを使っていますが、もちろんRツールへの入力データを受け取って利用することも可能です。

この処理は以下のようなグラフを生成するものとなっています。

マウスオーバーしたところの値が右上に表示されるとともに、下部のスライダーで表示する範囲を絞り込むことが可能です。

残念ながらこのままAlteryxGraph関数で出力してもそのまま動的なグラフにはなってくれません。 なので、Alteryxで動的なグラフを作成するために以下の手順を踏みます。

  1. RツールからはPCXMLとして出力
  2. Report Textツールでグラフに変換

2の工程に関しては冒頭にリンクを貼った記事と同じになります。 ここでやることは1の工程になります。

Rの動的グラフはHTMLなんだからそれをちょちょちょい、と加工してと思われるかもしれませんが、そのままやろうとすると意外と面倒です。 RMarkdownやShinyなどにはそのまま埋め込めるのですが、それ以外では一度HTMLファイルとして出力して、それを読み込んで、という工程が発生します。

実はAlteryxのRツールにはAlteryx出力用にこれらの動的グラフをPCXML形式で出力してくれる関数があるんです。 しかも使い方はとっても簡単。

library(AlteryxRviz)
renderInComposer(d, nOutput = 1)

renderInComposer関数に出力する対象と、出力先を指定するのみです。 以下のような出力が得られます。

あとは、これをReport Textツールでレポートに変換してやれば動的グラフの完成です。

注意点

最後に注意点を1つだけ挙げておきます。 Rのどんなライブラリでも必ずうまくいくとは限りません。

このツールは基本的にhtmlcontentタグをつけるものとなるので、ライブラリによってはPCXMLでは対応してないような記述のHTMLや厳密には構文エラーがある(がHTMLとしてみたときには何とかなってる)ようなものを出力する可能性もあります。 そういった場合、Report Textツールで変換しようとするとエラーが出ます。

これはグラフの内部がどんなHTMLになっているかがライブラリに依存するため、仕方ない部分ではありますが注意点として気を付けておいてください。

おわりに

今回はRで作成した動的なグラフをAlteryxに出力する方法を解説しました。

実はこの関数、Alteryx側で用意されていて標準で入っているツールのいくつかで利用されているのですが、表向きのドキュメントなどには詳細が記載されていないものになっていますw

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

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

alteryx_960x400

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.