【问题标题】:Extract a column from crossfilter从交叉过滤器中提取一列
【发布时间】:2016-01-06 10:08:23
【问题描述】:

这是我的问题。我有一个基于 dc.js 的仪表板和其中的一些数据。一列数据包含文本数据(推特信息)。是否可以从交叉过滤器中提取特定列?我的目标是创建一些图表,并且包含文本数据的交叉过滤器应输入基于 d3 的词云,以便我可以进行基于钻取的过滤以及 dc 和交叉过滤器提供的开箱即用。我尝试了一个 dimension.top(infinity) 但它返回了数据中的所有键值对。我只需要整个数据集中特定键的值。我希望我的问题有点道理。

编辑: 更多的研究表明,wordcloud 将接受键值对中的数据,其中键是单词,值是它的出现频率。所以我猜这也需要实施。如果有一个准备好实现的库,也请告诉我。就交叉过滤器而言,这会改变一些事情。每当触发过滤器时,我都需要抛出这个计算出来的键值对(适合词云消费)。该怎么办?

期待大家的来信。

最好, 安莫尔

【问题讨论】:

    标签: dc.js crossfilter


    【解决方案1】:

    回答问题的第一部分:可能是 dimension.top(Infinity),然后使用访问器获取您需要的值。效率不高,但就是这样。

    第二部分的答案:

    我认为你需要 groupAll。您想获取一条推文,生成一组标记(单词),然后生成一个 Crossfilter 分组,该分组是每个单词的计数,对吧?您可以编写自己的自定义 crossfilter.dimension.groupAll 减速器(如果您想这样做,请创建一个工作示例,我可能会编写它)。或者如果你想使用 Reductio:

    tweetWords = data.dimension(function(d) { return d.tweetText.split(' '); });
    wordCounts = tweetWords.groupAll();
    
    reducer = reductio()
      .groupAll(function(d) {
        return d.tweetText.split(' ');
      })
      .count(true);
    
    reducer(wordCounts);
    
    wordCounts.all();
    

    如果您想过滤这个维度,您必须覆盖过滤器处理程序并使用 filterFunction 检查组键是否在记录的维度数组中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      相关资源
      最近更新 更多