
TableauとRの連携:その2
こんにちは山口 征啓です。
前回の記事ではTablueuとRの連携を取るとこまでを解説しました。
今回はいよいよ実際の解析をやってみます。
以下の記事を参考にしました
単純な計算
まずは簡単な例で説明しましょう
スーパー・ストアの売上に単純に10万円を足す計算をやってみます。
Rで計算させるには計算フィールドにSCRIPT_関数を書きます。
SCRIPT関数には以下の4つがありますが、これは戻り値の型によって分けられています。
・SCRIPT_REAL ():実数
・SCRIPT_STR():文字列
・SCRIPT_INT():整数
・SCRIPT_BOOL():ブール
今回は整数の足し算なのでSCRIPT_INTを使います。
計算フィールドを作成したら以下のように2つのルールでSCRIPT_関数の引数を設定します。
SCRIPT_INT("Rで使用するスクリプト",変数1,変数2)
ルール1 "Rのスクリプト",変数をすべて列挙
最初にRで使用するスクリプトを""で囲んで表記します。
次に使用する変数を列挙します。上の例では2つですが、使用する数だけ列挙します。
今回の例では変数は売上だけになりますので下記のようになります
SCRIPT_INT("[売上]+ 100000",[売上])
ルール2 Rスクリプト内の変数はすべて.argで置き換える
もう一つのルールは""で囲まれたRスクリプトの中の変数は.arg1, .arg2といった変数で置き換えることです。
このときに引数の最初の変数は.arg1、2番目の変数は.arg2で指定するという決まりになっています。プレースホルダー的な使い方ですね。
したがって、今回の例では下記のようになります
SCRIPT_INT(".arg1 + 100000",[売上])
実際の計算フィールドは以下の通りです

計算には時間がかかるようなので、売上が80万円以上の顧客をフィルターして、計算してみました

文字列の結合
次に文字列の結合をやってみます。
顧客の名前の後ろに「さま」をつけてみます
最初は以下の式を書いたのですが、エラーになってしまいました
「すべてのフィールドが集計または定数である必要があります」とのことです

正解はこちらでした。ATTR()を使いました。これで集計したことになるようです。


今回は簡単な計算と文字列結合をやってみました。
次回はより本格的な解析をやってみます