Javascript d3.js中每行的多个列值之和

Javascript d3.js中每行的多个列值之和,javascript,mysql,d3.js,Javascript,Mysql,D3.js,我使用的是一个.csv文件,它需要根据每行中的每个键查找多个列值的总和。示例如下所示- key | value1 | value2 | value3 | value4 -----+--------+--------+--------+-------- mike | 1 | 3 | 5 | 7 -----+--------+--------+--------+-------- mila | 2 | 4 | 6 | 8 --

我使用的是一个.csv文件,它需要根据每行中的每个键查找多个列值的总和。示例如下所示-

key  | value1 | value2 | value3 | value4 
-----+--------+--------+--------+--------
mike | 1      | 3      | 5      | 7      
-----+--------+--------+--------+--------
mila | 2      | 4      | 6      | 8
-----+--------+--------+--------+--------
minda| 9      | 11     | 13     | 15
因此,我需要以动态方式找到每个键的“value1+value2+value3+value4”之和,而不是提到d.value1+d.value2+d.value3+d.value4


谢谢…

您是否正在为CSV发出AJAX请求?如果要在其中进行处理,请执行以下操作:

d3.csv("data.csv")
  .row(function(d) {
    return {
      key: d.key,
      mySum: ((+d.value1) + (+d.value2) + (+d.value3) + (+d.value4))
    };
  })
  .get(function(error, rows) {
    console.log(rows);
  });
例如

编辑评论

如果不知道列数,请执行以下操作:

d3.csv("data.csv")
  .row(function(d) { 
    var mySum = 0;
    for (var o in d) { // iterate all the properties of d
      if (o === "key") continue; // if it's our key field skip it
      else mySum += +d[o]; // everyone else into the sum
    }
    return {
      key: d.key, 
      mySum: mySum
    };
  })
  .get(function(error, rows) { 
    console.log(rows); 
  });

更新。

否如果只有d3.js才有可能,那就更好了。@Faisal:你已经设法读取了.csv文件了吗?请显示您的代码的当前状态…您的数据结构是什么?您能修复您的设计吗?我尝试过这种方式来读取csv,但它是一种静态方式-var avgs=d3.nest().key(函数(d){return d.key;})。rollup(函数(d){return{value:d.value1+d.value2+d.value3+d.value4;};};}).entries(csv);谢谢。但我需要以动态方式获取总和,而不是附加诸如d.value1、d.value2等列名。由于列数超过100,我应该采用动态方式,以使其对用户友好。