【问题标题】:Handle a string return from R to Tableau and SPLIT it处理从 R 到 Tableau 的字符串返回并将其拆分
【发布时间】:2020-12-07 08:01:35
【问题描述】:

我将 Tableau 连接到 R 并执行 R 函数来推荐产品。当 R 结束时,返回值是一个包含所有产品详细信息的字符串,如下所示:

ID|Existing_Prod|Recommended_Prod\nC001|NA|PROD008\nC002|PROD003|NA\nF003|NA|PROD_ABC\nF004|NA|PROD_ABC1\nC005|PROD_ABC2|NA\nC005|PRODABC3|PRODABC4

(每行用\n分隔,表示行尾)

在 Tableau 上,我显示的计算字段如下:

ID|Existing_Prod|Recommended_Prod
C001|NA|PROD008
C002|PROD003|NA
F003|NA|PROD_ABC
F004|NA|PROD_ABC1
C005|PROD_ABC2|NA
C005|PRODABC3|PRODABC4

以上数据通过计算字段作为单个字符串到达​​ Tableau,我想根据管道 ('|') 对其进行拆分。现在,我需要将其分成三列,由管道分隔。

我在计算字段上使用了拆分功能:

SPLIT([R_Calculated_Field],'|',1)
SPLIT([R_Calculated_Field],'|',2)
SPLIT([R_Calculated_Field],'|',3)

但错误显示“SPLIT 函数不能应用于表计算”,这是不言自明的。有没有其他方法可以解决这个问题??我在谷歌上搜索了处理 R 和 Tableau 之间集成的最佳实践,我只能找到简单的 kmeans 聚类代码。

【问题讨论】:

    标签: r tableau-api rserve


    【解决方案1】:

    确保您了解分区和寻址如何用于表计算。 Table calcs 将参数向量传递给 R 脚本,并接收一个向量作为响应。这些向量的基数取决于表 calc 的分区。您可以通过编辑表格计算,单击特定维度来查看。未检查的字段确定分区 - 从而确定您从 R 发送和接收的参数的基数

    这意味着将您的问题映射到此基础架构可能会很棘手。不一定不可能。它旨在发送一系列向量参数,每个分区维度有一个单元格,例如制造商,并返回一个向量,每个制造商有一个结果(或任何字段组合为表 calc 划分数据)。听起来您期待一个任意长度的推荐列表。让您的 R 脚本在返回之前将字符串转换为向量应该不会太难,但向量的大小必须有意义。

    作为更容易适应此模型的方法的示例,假设您有一个 Tableau 视图,其中每个产品有一行(并且您有 N 个产品) - 并且每个产品的视图中有一些其他聚合度量字段。 (在 Tableau 中,视图的详细级别是产品级别。)

    将这些度量作为一系列参数向量传递给 R 会很简单——每个向量都有 N 个值,然后让 R 返回一个长度为 N 的实数向量,其中在每个位置返回的值是推荐人得分那个位置的产品。 (这就是为什么向量的排序也很重要)

    然后您可以从视图中过滤掉低分产品,并在视觉上区分高度推荐的产品。

    因此,了解 R 集成的第一步是了解表计算如何通过分区和寻址进行操作,并根据双向传递的固定长度向量进行思考。

    如果此模型不能很好地支持您的用例,您可以使用 URL 操作或 JavaScript API 做一些有用的事情。

    【讨论】:

      最近更新 更多