【发布时间】:2017-11-05 19:55:04
【问题描述】:
我正在尝试使用PivotTable.JS Script by Nicolas Kruchten 并遇到以下问题:
我的数据中的某些字段具有多个值。例如在以下条目中,有多个“细分”和“趋势”:
{'Segment': ('Lending','Marketplace'), 'Trend': ('Investments', 'Expansion'), 'Month_year': 'Oct 2016', 'Link': 'http://www.geektime.com/2016/10/02/german-credit-startup-smava-bags-34-million-series-c-investment/', 'Title': 'Smava has raised $34 million Series C investment from Runa Capital', 'Country': 'Germany'},
现在,
- 如果我将 Segment 作为元组
( )传递,则数据透视表 UI 只考虑最后一个条目(市场),而忽略它之前的所有条目(借贷)。因此,Marketplace 为 1,Lending 为 0。 - 如果我将段作为列表/数组
[ ]传递,则数据透视表 UI 将“借贷、市场”视为一个单独的实体,而不是在“借贷”和“市场”中单独计算. - 如果我将段作为字典
{ }传递,则脚本根本不起作用。
我不能中断和重复输入,一个有“借贷”和另一个“市场” - 因为它会导致其他字段的大量重复计数。例如。打破并重复“segment”和“trend”这两个条目将导致“国家:德国”有四个计数,而实际上只有一个。
我被这个问题困住了,需要一个解决方案来解决它。任何帮助将不胜感激。 TIA
【问题讨论】:
-
您需要将数据“标准化”为“事实”:每列只有一个值的数据集。在您的情况下,您可以在将数据传递给计算数据透视表的组件之前将示例行扩展为几行(对于“Segment”和“Trend”数组中的每个唯一值)。
-
这就是整个问题。如果我拆分并扩展上面提到的行/条目,我将有 4 行....现在,在枢轴中,如果我在一个轴上有 Month_year,在另一个轴上有 Country,我的计数将为 4,而实际上应该是 1。
-
只有在选择“多值”列作为维度时才可以展开。 Pivottable.js 具有“onRefresh”处理程序,您可以在用户选择后重新绑定数据(不幸的是,如果没有更改 pivot.js,双重渲染是不可避免的)。
标签: javascript pivot-table olap olap-cube pivottable.js