我将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)但是错误显示“拆分函数不能应用于表计算”,这是不言而喻的。有什么替代方案可以解决这个问题吗?我在谷歌上搜索了一下处理R和Tableau之间集成的最佳实践,我所能找到的就是简单的kmeans集群代码。
发布于 2020-08-19 08:39:20
确保您了解分区和寻址是如何为表calc工作的。Table calcs将参数的向量传递给R脚本,并接收单个向量作为响应。这些向量的基数取决于表calc的分区。您可以通过编辑表格计算器,单击特定的尺寸标注来查看此信息。未选中的字段确定分区,从而确定从R发送和接收的参数的基数
这意味着将您的问题映射到此基础设施上可能很棘手。不一定是不可能的。它的设计目的是发送一系列向量参数,每个分区维度一个单元,例如,制造商,并返回一个向量,每个制造商一个结果(或者为表计算划分数据的任何字段组合)。听起来你在期待一个任意长度的推荐列表。让R脚本在返回之前将字符串转换为向量应该不会太难,但向量的大小必须有意义。
作为更适合此模型的方法的示例,假设您有一个Tableau视图,每个Product有一行(您有N个产品)-以及每个Product视图中的其他一些聚合度量字段。(在Tableau中,视图的细节级别是产品级别。)
直接将这些度量作为一系列参数向量传递给R-每个向量都有N个值,然后让R返回一个长度为N的实数向量,其中每个位置返回的值是该位置产品的推荐分数。(这就是为什么矢量的排序也很重要的原因)
然后,您可以从视图中筛选出得分较低的产品,并在视觉上区分高度推荐的产品。
因此,理解R集成的第一步是理解表计算如何与分区和寻址一起操作,并根据在两个方向上传递的固定长度的向量进行思考。
如果该模型不能很好地支持您的用例,那么您可以使用URL操作或JavaScript应用编程接口来做一些有用的事情。
https://stackoverflow.com/questions/63463468
复制相似问题