3

我正在 Tableau 中准备数据可视化。我有一些可以像这样简化的数据:

Name, Score, Tag
Joe, 5, A;B
Phil, 7, D
Quinn, 9, A;C
Bill, 3, A;B;C

我想在Tag字段上生成一个词云,计算每个项目 A、B、C 的出现次数。所以我需要生成这个:

A,3
B,2
C,2
D,1

换句话说,我需要帮助处理包含分隔值列表的字段。在示例中,数据;是分隔符,但它可以是任何东西。我希望在用户应用过滤器时更新词云,例如拖动滑块来设置score > 5。所以标签计数必须即时完成。

我很确定我需要使用字段计算和表格计算..?可能我需要一个单独的表格来跟踪标签..?

我构建词云和其他可视化元素没有问题。我正在寻求帮助的是解析分隔列表字段并计算标签计数。

我确实可以完全控制源数据,所以如果有更简单的方法可以通过重新组织架构来做到这一点,我很乐意这样做。我想把这个领域分成 spearate tag1, tag2,tagX 领域并尝试计算单独的领域......但不确定这是否更简单。

感谢您的任何提示。

4

2 回答 2

1

另一种(在您的情况下可能更好)方法是在将数据提供给 Tableau 之前对其进行整形。Tableau 最适合处理标准化数据。

预处理它看起来像:

Name, Score, Tag
Joe, 5, A
Joe, 5, B
Phil, 7, D
Quinn, 9, A
Quinn, 9, C
Bill, 3, A
Bill, 3, B
Bill, 3, C

此时,标准的 Tableau 词云图表应该可以正常工作,并且随着您添加更多标签和数据,它会轻松扩展。

在使用 Tableau 进行分析之前重塑数据以对其进行标准化是一个非常标准的步骤。有时您可以自动执行此操作,例如使用自定义 SQL,但通常您必须先使用某种脚本。如果您的数据来自 Excel,Tableau 有一个插件可以帮助重塑数据。在 Tableau 知识库中查找它。

于 2014-01-21T04:19:25.770 回答
0

如果您有一组固定的 3 或 4 个标签,这是一种可以接受的方法。由于您有接近 50K 的可能标签,因此对于您的问题而言,这不是一种可行的方法。但也许它会给你一个想法。类似的方法可用于解决 Tableau 中的不同类型的问题,因此这是一个有用的技巧。

对于每个标签,创建一个布尔计算字段,如果当前行包含该特定标签,则返回 1,否则返回 null(或您想要详细说明的任何条件)

例如,定义一个名为 Tag_A 的计算字段,定义为:

if contains(Tag, "A") then
  1
end

类似,定义计算字段 Tag_B、Tag_C 等

到目前为止,这很容易。然后,您可以在其他计算中使用这些字段来计算包含标记 A 的记录数,过滤到仅包含 A 的记录,在定义由公式动态计算的集合时使用条件选项卡上的计算字段......当然,低级计算字段函数可能更复杂,例如检查列表中是否存在至少 2 个字段。

如果不出意外,这种方法有时可以让您将复杂的问题分解成小块。

不幸的是,硬编码计算的字段名称不会扩展到 50K 标签。为此,您可能想要重塑您的数据。

于 2014-01-21T04:13:48.873 回答