Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/Google图表|数据表信息的复杂分组(这可能吗?)_Javascript_Google Visualization - Fatal编程技术网

Javascript/Google图表|数据表信息的复杂分组(这可能吗?)

Javascript/Google图表|数据表信息的复杂分组(这可能吗?),javascript,google-visualization,Javascript,Google Visualization,我将大量数据动态加载到数据表中。我想做几个分组过滤器来减少数据。这里有一个小例子 cols:0=市场化,1=存储ID,2=问题1,3=问题2,…,n=问题n row=1调查 市场1 | 1234 |是|否|……|否 市场1 | 2345 |否|否|……|是 市场1 | 3456 |是|是|……|否 市场2 | 4567 |不|不|……|是 市场2 | 5678 |否|是|……|是 市场3 | 6789 |是|否|……|是 我正在寻找使用分组(我也假设一些创造性的加入)来减少这一点。我需要: 1.

我将大量数据动态加载到数据表中。我想做几个分组过滤器来减少数据。这里有一个小例子

cols:0=市场化,1=存储ID,2=问题1,3=问题2,…,n=问题n
row=1调查

市场1 | 1234 |是|否|……|否
市场1 | 2345 |否|否|……|是
市场1 | 3456 |是|是|……|否
市场2 | 4567 |不|不|……|是
市场2 | 5678 |否|是|……|是
市场3 | 6789 |是|否|……|是

我正在寻找使用分组(我也假设一些创造性的加入)来减少这一点。我需要:
1.计算每个唯一市场id的门店id,并在其自己的列中返回每个市场id的门店总数
2.对于每个marketId,计算每个问题回答是和否的数量,并将结果张贴在他们自己的栏中

cols:0=市场化,1=市场中的门店数量,2=问题1(是的数量),3=问题1(否的数量),4=问题2(是的数量),5=问题2(否的数量),…,n-1=问题n(是的数量),n=问题n(否的数量)
行=调查摘要

市场1 | 3 | 2 | 1 | 1 | 2 |……|1 | 2
市场2 | 2 | 0 | 2 | 1 | 1 |……|2 | 0
市场3 | 1 | 1 | 0 | 0 | 1 |……|1 | 0


我已经看过了,在一些基本的分组中有点运气,但我以前从未尝试过这么复杂的东西。我想知道这种数量的过滤是否可能,如果可能的话,请朝着正确的方向努力。

过滤和分组是两件不同的事情:过滤限制数据,分组聚合数据。您需要的似乎是分组,而不是筛选,因此以下是一些基本代码,它们应该满足您的需要:

var groupColumns = [{
    // count of store ids
    type: 'number',
    column: 1,
    label: 'Count of ' + data.getColumnLabel(1),
    aggregation: google.visualization.data.count
}];
for (var i = 2, length = data.getNumberOfColumns(); i < length; i++) {
    groupColumns.push({
        // count of yes's in column i
        type: 'number',
        column: i,
        label: 'Count of yes\'s in ' + data.getColumnLabel(1),
        aggregation: function (vals) {
            var cnt = 0;
            for (var j = 0; j < vals.length; j++) {
                if (vals[j] == 'yes') {
                    cnt++;
                }
            }
            return cnt;
        }
    });
    groupColumns.push({
        // count of no's in column i
        type: 'number',
        column: i,
        label: 'Count of no\'s in ' + data.getColumnLabel(1),
        aggregation: function (vals) {
            var cnt = 0;
            for (var j = 0; j < vals.length; j++) {
                if (vals[j] == 'no') {
                    cnt++;
                }
            }
            return cnt;
        }
    });
}

var groupedData = google.visualization.data.group(data, [0], groupColumns);
var-groupColumns=[{
//店铺ID的计数
键入:“编号”,
专栏:1,
标签:“+数据的计数。getColumnLabel(1),
聚合:google.visualization.data.count
}];
对于(var i=2,length=data.getNumberOfColumns();i
感谢您的澄清和正确的方向。这太棒了!