在R中进行计算,在Tableau中进行可视化 - 如何正确地整合这两个工具?

11

我有一堆R脚本,可以从不同的数据源读取数据,执行所需的所有分析并生成一些可视化。现在我需要将可视化部分交给Tableau,并在后者中准备整个仪表板。

据我所知,我可以将所有的data.frames保存为.Rdata文件,然后在Tableau中加载它们,但长期来看似乎很繁琐,而且整个程序应尽可能自动化。

我了解到的第二种选择是在Tableau中读取数据,通过Rserve连接到R,并从Tableau调用简单的R脚本。这是一个选项,但是:

  • R脚本无法完全自动化——它们需要与用户进行一些交互,由用户控制分析,应该保持这样
  • 我的脚本做了很多数据清理和整理,我认为最好将此工作分开在R中完成

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


对于那些投票决定关闭该话题的人,我能请你们告诉我你们投票的原因吗? - jakes
可能的原因是这不是一个与编程或代码有关的问题,而是一个配置问题,这在stackoverflow社区中是不鼓励的。最后,我没有投票关闭。 - Siva
1
我不知道Tableau,但在R中编程和配置之间没有明确的界限。关闭投票可能是因为您要求“最佳方法”来解决一个相当普遍的问题。我没有投票关闭,因为我不知道Tableau,而且您花了一些辛苦赚来的点数作为悬赏,但我可以理解他们的观点,最好创建一个可重现的场景。就R而言,您可以将所有想要的数据框保存在单个.Rdata文件中,如果您可以直接在Tableau中加载它,则我认为这并不太麻烦。 - moodymudskipper
1个回答

4
使用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有API允许Python(和Java,C等)生成提取,并且还有一个用于Windows的命令行实用程序以生成提取。
如果您的目标是自动化ETL过程,您应该考虑使用Tableau Prep工具-它可以将您的Rdata文件转换为提取,而无需编写脚本。最后要考虑的话题是使您的数据可供使用Tableau Server上的人员和工作簿。当您准备好进行该步骤时,有几种选项可供您如何在Tableau Server上发布和刷新数据。无论是通过让服务器按计划启动刷新,还是在您的R脚本执行后启动刷新。在最后一种情况下,还有另一个有用的API,称为Tableau REST API,并且Tableau还将其发布到了github的开源库中,以便使用Python轻松地使用REST API。Tableau已经宣布计划在2019年让Tableau Server执行Table Prep流程。
RServe的交互使用案例在许多情况下都很棒,但似乎并不适合您正在寻找的内容。请注意:该功能是设计用于交互式使用的。如果您在R中运行长时间的计算(例如训练复杂的ML模型),通常最好将其作为单独的步骤,并在想要构建和共享交互式可视化时将Tableau引入其中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接