Javascript 使用d3.nest根据特定键对值求和,并由另一个键过滤

Javascript 使用d3.nest根据特定键对值求和,并由另一个键过滤,javascript,d3.js,Javascript,D3.js,我有一个包含三列的csv文件: College,Undergraduate,IOP Science,1,Yes Science,3,No Arts,2,Yes Arts,1,No Science,2,Yes 我想创建一个变量:[{type:“Arts”,Applied:2},{type:“Science”,Applied:3}]。我只想求和IOP希望值为是 我的代码: function csvToJSONUSPstudents(csv){ d

我有一个包含三列的csv文件:

College,Undergraduate,IOP
Science,1,Yes
Science,3,No
Arts,2,Yes
Arts,1,No
Science,2,Yes
我想创建一个变量:
[{type:“Arts”,Applied:2},{type:“Science”,Applied:3}]
。我只想求和IOP希望值为是

我的代码:

         function csvToJSONUSPstudents(csv){

                d3.csv(csv, function(error, csv_data) {
                if (error) throw error;


                var datas = d3.nest()
                  .key(function(d) { return d.College;})
                  .rollup(function(d) {


                  return {

                     Applied: d3.sum(d, function (g) {
                       return g.Applied;
                     }),

                   };

                     }).entries(csv_data);


                  var data = [];
                  var x = {};

                  for (var i = 0 ; i< datas.length;i++){

                      x =  {type:datas[i].key , 
                      Applied:datas[i].values.Applied}
                      data.push(x)
                       }

                      console.log(data);


                  });







                  }
函数CSVTOJSONUSPSOudents(csv){
d3.csv(csv,函数(错误,csv_数据){
如果(错误)抛出错误;
var data=d3.nest()
.key(函数(d){return d.College;})
.汇总(功能(d){
返回{
应用:d3.和(d,函数(g){
返回g.已应用;
}),
};
}).条目(csv_数据);
var数据=[];
var x={};
对于(变量i=0;i
d3。nest
不适合您的情况。问题是,
d3.nest
将生成具有以下特定结构的数组:

[{key: foo, values: [],
{key: baz, values: [],
{key: baz, values: []];
不仅结构是固定的,甚至属性名(
也不能更改

因此,在您的情况下,我建议使用定制功能。例如:

const csv=`学院、本科、IOP
科学,1,是的
科学,3,不
艺术,2,是的
艺术,第一,第二
科学,2,是的`;
设数据=d3.csvParse(csv);
数据=数据过滤器(函数(d){
返回d.IOP==“是”
}).减少(功能(a,c){
const found=a.find(函数(e){
返回c.College==e.type;
});
如果(找到){
发现。应用+=本科学历;
}否则{
a、 推({
类型:c.学院,
应用:本科
})
};
返回a;
}, []);
console.log(数据)

请将一些示例css作为代码。您当前的css格式不正确。