【问题标题】:dc.js: Reducing rows in data tabledc.js:减少数据表中的行
【发布时间】:2015-07-07 17:19:43
【问题描述】:

所以我有一个像这样输出的data.table 对象:

gender  hair-color  pets  group1.totals   group2.totals   group3.totals
  F       black      Y       10               0                 0
  F       black      Y        0               7                 0
  F       black      Y        0               0                 8

我如何折叠它,让它变成这样?

  gender  hair-color  pets  group1.totals   group2.totals   group3.totals
    F       black      Y         10               7                 8

我已尝试减小尺寸,但似乎不起作用。我的代码如下:

ndx = crossfilter(data);
dataTable = dc.dataTable('#data-table');
var tableDim = ndx.dimension(function(d) {
    return d.gender + "/" + d.hair-color + "/" + d.pets;
      });

dataTable
   .width(400)
   .height(800)
   .dimension(tableDim)
   .group(function(d){
     return "Data Counts";
    }),
   .columns([
      function(d) {
        return d.gender;
       },
      function(d) {
        return d.hair-color;
       },
      function(d) {
        return d.pets;
      }
      function(d) {
        if (d.group == 1) return d.totals;
          else return 0;
      },
      function(d) {
        if (d.group == 2) return d.totals;
          else return 0;
      },
      function(d) {
        if (d.group == 3) return d.totals;
          else return 0;

基本上我知道我必须减少和分组我的数据,但我找不到具体要做什么才能实现。任何帮助都会很棒,谢谢!

【问题讨论】:

    标签: javascript dc.js crossfilter


    【解决方案1】:

    使用以下代码;

    var ndx=crossfilter(data);
    var dimension=ndx.dimension(function(d){return d.hair-color});
    var dataByHairColor=dimension.group().reduceCount();
    

    我希望它能解决问题。如果您想要其他过滤选项,请使用它。我用了头发的颜色。如果您仍然遇到问题,请告诉我

    【讨论】:

    • 从代码的外观来看,它只会按头发颜色计算。如果我想要多个维度的总计(例如头发颜色、性别和宠物的总计)怎么办?
    猜你喜欢
    • 2015-01-10
    • 2016-06-27
    • 2019-10-06
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多