#tableau #data17 [レポート] R 連携を利用した Jedi の戦略 – Tableau Conference On Tour 2017 Tokyo

先日2017/04/18(火)〜2017/04/19(水)の2日間に渡り、ウェスティンホテル東京@恵比寿にて行われたカンファレンスイベント
Tableau Conference 2017 On Tour Tokyo』。

screenshot 2017-04-24 2.31.34

当エントリでは、イベント1日目(2017/04/18)に開催されたテクニカルセッション『R 連携を利用した Jedi の戦略』についてその内容をご紹介したいと思います。

目次

 

セッション情報:概要

事前に公開されていたセッションの概要情報は以下となります。

R 連携は、Tableau のパワフル機能です。この機能では、R の拡張性および統計分析能力を、Tableau の使いやすいドラッグ&ドロップ操作と組み合わせます。このセッションでは、Tableau Desktop と Tableau Server における R 連携の可能性と、R の能力を Tableau に取り入れるための高度な戦略について説明します。R 連携を以前に利用したことがないなら、この機能が注目されている理由と、この機能によって Tableau に開かれる可能性を知ることができます。すでに R に関する知識がある方は、その動作の仕組みと、ワークブックをより速く簡単に使う方法を学ぶことができます。

Speaker: 津久井 英樹
レベル: Jedi
タイプ: ブレイクアウトセッション
場所: スタールーム B

 

セッション内容レポート

data17-tableau-r-jedi-strategy_00

冒頭まずはじめに『ゼブラ貝の拡散』に関するデータを使いデモを実施。

data17-tableau-r-jedi-strategy_02

入力値の緯度経度情報を用い、州の情報をアウトプットとして出力、この処理にR言語を用いている。

data17-tableau-r-jedi-strategy_01

R言語の簡単な解説を。Rは統計及びグラフ作成に適したプログラミング言語で、

  • 7000を超えるオフィシャルパッケージ
  • テキストのセンチメント分析
  • 色分析

等が行える。

SCRIPT_* 関数というものがTableauには用意されており、この実演デモで見せたものについてもこの関数(SCTIPT_STR)を用いている。TableauヘルプのR連携に関する言及箇所は以下。

また、TableauにおけるR関連の関数は以下に記載あり。

  • 表計算関数
    • SCRIPT_BOOL:指定された式からブールの結果を返す。
    • SCRIPT_INT:指定された式から整数の結果を返す。
    • SCRIPT_REAL:指定された式から実際の結果を返す。
    • SCRIPT_STR:指定された式から文字列の結果を返す。

使い方としては

  • 1.ライブラリをロードし、
  • 2.関数を定義、
  • 3.そして値を戻す

という流れ。

data17-tableau-r-jedi-strategy_04

先のデモも上記の例に則って計算フィールドを作成して活用している。

data17-tableau-r-jedi-strategy_03

 

R連携:パフォーマンス向上

R連携において処理性能を上げるポイントとしては以下2つ。

速さの第1ルール

表計算ダイアログの編集で出来るだけ多くのボックスをチェックする事でRへの呼び出し回数を減らすと、パフォーマンス向上が見込める。

data17-tableau-r-jedi-strategy_06

速さの第2ルール

出来るだけ多くのコードをソースファイルに移動させ、Rへの受け渡し回数を減らす。これパフォーマンス改善が見込める。(ソースファイルへの移動手段については後述)

data17-tableau-r-jedi-strategy_07

 

R連携:動作を理解するための方法

R言語ではRserveという、R言語のサーバ環境を構築する事が可能。大まかな処理の流れは以下の様な形となる。

data17-tableau-r-jedi-strategy_09

以下のコードでサーバが起動(※Macの場合)し、コンソール出力が行える。

install.packages("Rserver")
library(Rserve)
Rserve(args=' --no-sage')

パラメータ指定も可能。

data17-tableau-r-jedi-strategy_10

 

R連携:戻り値を制御する方法

次いで実施されたデモは『凸包』に関するもの。

data17-tableau-r-jedi-strategy_11

この仕組みを使い、より少ないポイントを返すようにRで制御を行っている。

data17-tableau-r-jedi-strategy_12

data17-tableau-r-jedi-strategy_13

また逆に、『熊よけスプレー』『空港間の2点間の距離を表現』するデモで送信数より多くのデータを戻す方法についても解説。

data17-tableau-r-jedi-strategy_14

data17-tableau-r-jedi-strategy_15

data17-tableau-r-jedi-strategy_16

 

R連携:Tableau Serverでの利用

Tableau ServerとRServeを連携させた場合の構成は以下のようなものとなります。

data17-tableau-r-jedi-strategy_17

data17-tableau-r-jedi-strategy_19

構成を組む上で気を付けるセキュリティのポイントは以下。

data17-tableau-r-jedi-strategy_18

 

まとめ

以上、TableauとRの連携に関するJediセッションのご紹介でした。利用には幾つかの手順を必要としますが、Rの豊富なライブラリや機能を可視化に活用出来るのは非常に心強いものとなると思います。状況に応じて活用出来るように学んでおきたいところですね。TableauとRの連携については以下各種情報も参考にしてみてください。

参考情報