Tableau PrepとR連携
Tableau Prep and R Integration
Tableau PrepとRが連携できると聞いて、ドキュメントを探したのですが、上手く見つからなかったのでベータ版のテストスクリプトを参考に設定してみました 特に実用性のあるテスト内容ではないですが、動作確認用です
事前準備
- Tableau Prep 2019.3以上をインストール
- Rをインストール(RStudioをインストールしておいた方が良い)
- R or RStudioでRServeライブラリをダウンロード
- R or RStudioでRServeを起動
RServeの起動
事前準備3までが終わっている前提で、下記のコマンドでRは外部からの受付を可能にします
library("Rserve") Rserve()
シナリオ
数値データの(X列とY列)があるCSVファイル(test.csv)をPrepで読み込み、RにてX列とY列を加算してZ列を含んだデータフレームをPrepに戻す処理
Rスクリプトを書いておく
シナリオを満たすために、Rのコマンドファイル(futest.R)を作っておきます ここでは、こんなコマンドを書いてます
getOutputSchema <- function() { return (data.frame( x = prep_int(), y = prep_int(), z = prep_int())); } plus <- function(df){ out <- df$x + df$y return(data.frame(x=df$x, y=df$y, z=out)) }
getOutputSchemaはRからの出力のスキーマとしてdata.frameをx, y, zを全てint型で返す感じです。 また、plusはprepからデータをdfとしてRで読み込み、xとyの列を足したものをoutというベクトルで持ち、データフレームでx, y, zで返す感じです。
PrepでRスクリプトを読み込む
Prepでtest.csvファイルを読み込み、+ボタンから「スクリプトの追加」を押します
何もしていない状態なので、戻り値としてのxとyは何も見えない状態
Rserveサーバに接続ボタンを押して、サーバーやポートの情報を記述して、サインインのボタンを押します Tableau Desktopのように接続テストボタンがないので、Tableau Desktopでテスト接続をしておくのおすすめです
「参照」ボタンからfutest.Rファイルを選択して、関数にplusと記述します すると計算がいきなり走り、z列とともに計算結果が表示されます