我正在使用.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。
...谢谢
答案 0 :(得分:1)
您是否正在为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);
});
示例here。
修改评论
如果您不知道列数,请执行以下操作:
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);
});
更新了example。