r - R 中的计算,Tableau 中的可视化 - 如何正确集成这两者?

标签 r tableau-api rserve

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

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

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

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

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

    最佳答案

    有两种主要方法可以将 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 已宣布计划在 2019 年让 Tableau Server 执行 Table Prep 流程。

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

    关于r - R 中的计算,Tableau 中的可视化 - 如何正确集成这两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53208096/

    相关文章:

    r - sparklyr 特征转换函数导致错误

    r - 对 RServe 的 R 请求进行负载平衡

    java - 如何使用 Rserve 将文件路径传递给在 Java 中调用的 Rscript?

    xml - 在 R 中使用 getNodeSet 进行复杂的 xPath 查询

    以整洁的方式通过 tibble 运行 aov 测试

    r - 找到多边形的视觉中心

    ipython - Tableau viz 嵌入到 IPython notebook 中

    filtering - 具有不同过滤器的 Tableau 双轴

    将 Tableau notebook 导出到独立的交互式输出?

    python - 每个 Flask session 存储大数据或服务连接