R Integration with Tableau
During my Corporate Tableau Training in Gurgaon , i get questions many time regarding R Integration with Tableau .
Writing “R” Scripts inside Tableau : Step by Step
1.Tableau with R
-
-
This blog is intended to show how to leverage R to extend Tableau capabilities and visualize outputs from R.
-
-
This is not a Tutorial on R.
2.What is R
-
-
R is an open source programming language and software environment for statistical computing and graphics
-
-
The R language is widely used among statisticians and data miners for developing statistical software and data analysis.
3.What is R Studio
-
-
RStudio is a free and open-source Integrated Development Environment (IDE) for R.
-
-
RStudio is available in two editions: RStudio Desktop, where the program is run locally as a regular desktop application; and RStudio Server, which allows accessing RStudio using a web browser while it is running on a remote Linux
4.Installing R & R Studio
-
Download R from the Link:
-
Download R Studio from the Link:
https://www.rstudio.com/products/rstudio/download/
5.Setting Up Tableau Desktop with R
Tableau communicates with R using a package called Rserve.
You can install and initiate Rserve from R command line by entering:
install.packages(“Rserve”);
library(Rserve);
Rserve()
6.Configure an Rserve Connection on Tableau
On the Help menu in Tableau Desktop choose Settings and Performance > Manage R Connection to open the Rserve connection dialog box.
The below screen opens up:
Enter or select a server name using a domain or an IP address. The drop-down list includes localhost and the server you most recently connected to.
Specify a port. Port 6311 is the default port for Rserve servers. If the server requires credentials, specify a Username and Password.
Click Test Connection. Click OK.
7. Pass Expressions to R
-
-
In order to let tableau know that the calculations need to go to R, it must be passed through one of the 4 functions.
-
-
-
These 4 functions are : SCRIPT_BOOL , SCRIPT_INT , SCRIPT_REAL , SCRIPT_STR
-
-
-
R Functions are computed as Table calculations in Tableau.
-
-
Since these are table calculations, all the Fields being passed to R must be aggregated like Sum(PROFIT), MIN(Profit), Max (Profit), ATTR( Category) etc.
8. R Functions in Tableau
8. Run an R script on Tableau
8a → SCRIPT_BOOL
Returns a Boolean result from the specified expression. The expression is passed directly to a running external service instance. In R expressions, use .argn (with a leading period) to reference parameters (.arg1, .arg2, etc.).
SCRIPT_BOOL(” .arg1 > 0 “, SUM([Profit]))
-
-
In this R example, .arg1 is equal to SUM([Profit])
-
-
All the Fields being passed to R must be aggregated like Sum(PROFIT), MIN(Profit), Max (Profit), ATTR( Category) etc..
8b → SCRIPT_INT
SCRIPT_INT(” .arg1 / 2 “, SUM([Profit]))
Returns an integer result from the specified expression. In this R example, .arg1 is equal to SUM([Profit])
8c→ SCRIPT_REAL
SCRIPT_REAL(” log(.arg1) “, SUM([Profit]))
Returns a real result from the specified expression. In this R example, .arg1 is equal to SUM([Profit])
8d → SCRIPT_STR
SCRIPT_STR(” paste(.arg1 ,.arg2)”,
attr([Category]),
attr([Sub-Category])
)
Returns a string concatenate result using “R” paste function. In this R example, .arg1 is equal to attr([Category]) SCRIPT_STR(” paste(.arg1 ,.arg2)”,
attr([Category]),
attr([Sub-Category])
)
Returns a string concatenate result using “R” paste function. In this R example, .arg1 is equal to attr([Category])
9. Share a Workbook That Requires an Rserve Connection
You may need to send a workbook that contains R functionality to other users, who may be using different copies of Tableau Desktop on other computers. Or, users may download a workbook from Tableau Server that contains R functionality. Before users will be able to use the R functionality in workbooks they have received or downloaded to Tableau Desktop, they must Configure Rserve connections on their Computers.
10. Publishing Workbooks with an Rserve Connection
-
-
Publishing a workbook with R functionality to Tableau Server requires Server to have a connection to Rserve.
-
-
-
If multiple users need to access Rserve simultaneously, Rserve should be installed on Linux.
-
-
-
Rserve on Linux, unlike Windows, handles each user independently and does not allow users to overwrite other’s objects.
-
-
-
Before you publish a workbook that relies on an Rserve connection to Tableau Server, you should configure Tableau Server to have its own Rserve connection.
-
-
-
You do this by configuring settings with tabadmin set.
-
-
-
The settings are equivalent to the values you set in the Rserve Connection dialog box. They are:
-
-
-
vizqlserver.rserve.host
-
-
-
vizqlserver.rserve.port
-
-
-
vizqlserver.rserve.username
-
-
-
vizqlserver.rserve.password
-
-
Note: The settings vizqlserver.rserve.username and vizqlserver.rserve.password should be omitted if Tableau Desktop connects to RServe without a username and password.
11. About R integration with Tableau [ As of Tableau 10.1 (April 2017)]
-
-
You cannot publish workbooks containing R scripts to Tableau Public.
-
-
-
You cannot view workbooks containing R scripts in Tableau Reader.
-
-
-
You cannot publish a workbook that contains R scripting to Tableau Online.
-
-
-
Tableau has been tested with R versions 3.1 and 3.2, and with Rserver version 0.6-8.
-
-
-
Tableau cannot verify that workbooks that use R will render properly on Tableau Server. There might be scenarios where a required statistical library is available on a user’s machine but not on the Rserve instance that Tableau Server is using.
-
-
-
For views that cannot be rendered in Tableau Server because of an R script error, you see a warning error when you publish the workbook .
-
-
Because Tableau Server provides an authentication mechanism, it can be more secure to expose Rserve functionality to users through Tableau Server than in Tableau Desktop.