【问题标题】:head & tail function in TableauTableau 中的头尾函数
【发布时间】:2016-10-27 14:45:17
【问题描述】:

如果您尝试隔离向量的最后一项或第一项,那么 Tableau 中“头”和“尾”的最有效程序或等效程序是什么? 已知的程序,例如如果您正在寻找最后 10 个数字的平均值,则在 R 中很容易: mean(head(x, 10))mean(tail(x, 10))。 我尝试在 Tableau 中使用 LOD“max”和“min”找到解决方案,但“显示前 10 分钟的项目”?!没有机会!

【问题讨论】:

  • First() 和 Last()??
  • 我正在寻找 mean(head(x, 10)) 的等价物。 avg(first(x, 10)) - 不,那没有解决方案。
  • 你说的这些向量在哪里?您是在谈论数据库表中的行吗? Tableau 查询未定义数据行顺序的关系表。或者您是在谈论使用表计算检查的查询结果的分区,例如当您从 Tableau 调用 R 时?
  • x 是向量,包含 n 个值 - 例如整数。对于“等价”,我试图解释在同一任务中,Tableau、Pyrhon、C++ 中还有其他措辞/语法......要从 R 中的 x 中找到前 10 个数字:head(x, 10),以及什么是等价于在 Tableau 中。好的?平均而言:mean(head(x, 10))

标签: tableau-api tail head


【解决方案1】:

如果您在谈论表格计算,那么您可以使用 WINDOW_XXX() 函数——例如window_sum(sum(x), 1, 10)window_avg(sum(x), size()-9, size())

Table calcs 对从数据源返回的聚合查询结果进行操作,因此字段 x 周围的聚合函数 sum()。

根据您要解决的问题,学习使用 Top N 过滤器而不是表格计算可能更简单。

【讨论】:

  • 我发现:first() 正在寻找 10 个最小的数字,而不是“第一个”数字。如果你的向量像这样[3, 2, 5, 6, 7, 1, 2, 5, 9, 4, 4, 5, 2, 2, 1]“第一个函数”计算 10 个最小的数字!,而不是这一行[3, 2, 5, 6, 7, 1, 2, 5, 9, 4..]“first()”需要一个索引或数据来知道“第一个”是什么意思。因此,需要额外的信息,例如“sagt_date”window_sum(sum(x), first() from [startdate], 10).
  • First() 并没有像您认为的那样做。请参阅联机帮助的参考部分中的函数定义。 First() 仅返回从分区集中的当前项到分区开头的偏移量。所以如果你在位置 1,first() 返回 0。如果你在位置 2,first() 返回 -1。在位置 3,first() 返回 -2。 Index() 返回分区中的当前位置。 Last() 返回到达最后一个位置的偏移量。 Size() 返回分区中的位置数。所有这些都受到您选择的数据分区和排序方式的影响
  • P.S.我刚刚编辑了答案第一段中的示例,现在我更好地理解了我认为您正在尝试做的事情。
  • 谢谢,亚历克斯。是的,我知道“first()”的“定义”。有点奇怪……
  • 另一件可能引起混淆的事情是,您编写的公式只是定义表计算行为方式的一部分。您还可以指定如何将结果划分为块以及遍历每个块的顺序。 first() 函数将根据您选择的数据分区方式给出不同的结果。 tableau UI 试图使用“计算使用”这个术语来简化这一点,我认为这不仅是为了澄清,而且是令人困惑的。在线帮助中有一个使用术语分区和寻址的部分很有帮助。
猜你喜欢
  • 2012-10-25
  • 2021-08-26
  • 1970-01-01
  • 2014-10-02
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多