R中的计算,Tableau中的可视化-如何正确整合这两个?

时间:2018-11-08 12:49:08

标签: r tableau rserve

我有一堆R脚本,它们从各种来源读取数据,执行所有需要的分析并进行一些可视化处理。现在,我需要将可视化部分传递给Tableau,并在后者中准备整个仪表板。

据我所知,我可以将所有data.frames保存到.Rdata文件并将它们加载到Tableau中,但从长远来看似乎很麻烦,而整个程序应尽可能自动化尽可能。

我知道的第二个选择是读取Tableau中的数据,通过Rserve连接到R,然后从Tableau调用简单的R脚本。这将是一个选择,但是:

  • R脚本不能完全自动化-它们需要与用户进行一些交互,必须由用户来控制分析,因此应该保留分析
  • 我的脚本进行了大量的数据清理和整理工作,我认为最好将此工作单独留在R中

所以我的问题是集成R和Tableau的最佳方法是什么,以便在用R执行所有分析之后,我只能用很少的图更新准备好的早期Tableau仪表板中的数据?

1 个答案:

答案 0 :(得分:3)

有两种主要的方法可以一起使用Tableau和R,以适合不同的用例。第一种方法是使用R上游准备和分析数据,然后将这些数据提供给Tableau以用于生成和共享可视化。第二种方法是让Tableau通过RServe交互式连接到R。在那种情况下,Tableau使用R来有效地调用函数和返回值,然后Tableau可以将这些值合并到可视化中。一个很好的例子是让Tableau向R发送数据值,然后可以由先前训练的分类器模型对数据值进行评分。 R提供模型评估; Tableau提供了交互式可视化。

您的案例似乎属于第一类-使用R上游生成馈送到Tableau的数据。在这种情况下,您可以使用Tableau可以连接到的任何格式(表格格式)保存数据:csv,Rdata,数据库表,xlsx,shp。您的选择。

您还可以考虑将生成的数据转换为Tableau数据提取格式(以前是.tde,现在是.hyper),这将加快分析速度并简化数据发布。 Tableau具有允许Python(以及Java,C等)生成摘录的API,还具有用于Windows生成摘录的命令行实用程序。

如果您的目标是自动化ETL流程,则应该使用Tableau Prep工具进行研究-该工具可以将Rdata文件转换为数据提取,而无需编写脚本。最后要考虑的主题是使用Tableau Server将数据提供给人员和工作簿。当您准备好执行此步骤时,可以使用几个选项来选择如何在Tableau Server上发布和刷新数据。通过让服务器按计划启动刷新,或者通过在R脚本执行后启动刷新。在最后一种情况下,还有另一个有用的API,称为Tableau REST API,Tableau还向github发布了一个开源库,该库使使用Python中的REST API变得容易。 Tableau已宣布计划让Tableau Server在2019年执行Table Prep流程。

在许多情况下,RServe的交互式用例都很出色,但似乎并不是您想要的。注意事项:该功能是为交互使用而设计的。如果您在R中运行时间长,比如说要训练一个复杂的ML模型,通常最好将其作为一个单独的步骤,并在要构建和共享交互式可视化效果时将Tableau纳入其中。