2019年3月27日 星期三

Tableau 與 R 整合

本篇文章說明如何在 Tableau 軟體中使用 R 語言建立模型,以提供決策支援.

更新日期:2022.11.22

更新說明:使用 Tableau-22.04 實作使用 R 語言建立模型.

圖1. 說明 \設定和性能 \ 管理 Analytics 擴充連接



圖2. 選取 RServe



圖3. 主機名稱輸入 localhost



圖4. 按測試連線,顯示已成功連線表示可以使用R語言.



圖5. 完成畫面.








# Tableau
# R
# Rserve 套件
# Clustering
# kmeans

參考資料:
https://github.com/rwepa/tableaur


1. 下載並安裝 Tableau 14天版本
https://www.tableau.com/products/trial


https://www.rstudio.com/products/rstudio/download/#download

3. 安裝 Rserve 套件, 安裝套件僅需安裝一次即可.
install.packages("Rserve")

4. 載入 Rserve 套件
library(Rserve)

5. 啟動 Rserve 套件
Rserve()

參考下圖安裝與執行結果. 每次使用皆須完成此設定.





















6. 設定 Tableau 與 R 連結
Tableau \ Help \ Settings and Performance \ Manage External Service Connection


7. External Service Connection 視窗 \ Server 選項點選 localhost \ 按 Test Connection.


8. Tableau 視窗會顯示 Successfully connected to the external service. 表示Tableau 與 R 連接成功. 注意: 每次啟動Tableau 連結 R 皆須進行設定.

9. 將 iris 資料集匯出成 iris.csv 以提供 Tableau 匯入資料.
RStudio輸入 write.table(iris, file="iris.csv", sep=",", row.names=FALSE)

下載 iris.csv

10. Tableau 匯入 iris.csv.
Tableau \ Connect \ Text file \ iris.csv \ 開啟


11. 選取 Sheet1 \ Measures 空白處 \ 右鍵 \ Create Calculated Field


12. Create Calculated Field 視窗 \ 名稱改為 集群 新增以下內容:

SCRIPT_INT('set.seed(168);
result <- kmeans(data.frame(.arg1,.arg2,.arg3,.arg4), 3);
result$cluster;'
SUM([Sepal.Length]),SUM([Sepal.Width]),SUM([Petal.Length]),SUM([Petal.Width]))

  1. 本例使用集群 kmeans 演算法. result為kmeans 演算法的計算結果. result$cluster 回傳是集群整數編號, 因此使用 SCRIPT_INT 整數 Tableau 函數.
  2. 黃色 R 程式以 ' ' 標註, 三行R程式以 ; 區隔.
  3. 四個欄位名稱以SUM函數表示, 中間以 , 區隔.



13. 選取 集群 \ 右鍵 \ Convert to Discrete 將資料轉換為離散型變數.

14. 建立視覺化集群結果.
  1. 將 Petal.Length 拖曳至 Columns
  2. 將 Petal.Width 拖曳至 Rows
  3. 將 集群 拖曳至 Color

# end